<?xml version="1.0" encoding="UTF-8" ?>	<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"> 
	<channel>
		<title>Blog de Imaginanet S.L. Programacion web y marketing online.</title>
		<link>http://www.imaginanet.com/blog.html</link>
		<description>Blog de Imaginanet. Artículos especializados en soluciones y desarrollo Web 2.0. así como en buscadores web.</description>
		<lastBuildDate>Fri, 10 Sep 2010 10:59:36 +0100</lastBuildDate> 
		<generator>imaginaCMS</generator>
		<language>es</language>
		<sy:updatePeriod>weekly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
		<image> 
		    <title>Blog de Imaginanet S.L. Programacion web y marketing online.</title> 
		    <url>http://www.imaginanet.com/logo.png</url> 
		    <link>http://www.imaginanet.com/blog.html</link> 
		    <width>144</width> 
		    <height>53</height> 
	    </image>
	    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://www.imaginanet.com/feeds.htm" />
	    <feedburner:browserFriendly>
	    	Este es un feed de contenido XML. Para visualizarlo es necesario un programa de lectura de noticias y desde feedburner, el feed está sujeto a los derechos de autor y a un uso responsable. 
	    	/
	    	This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.
	    </feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" />
			
		<item>
			<title>Google Chrome cumple 2 años y trae nuevas funcionalidades</title>
			<link>http://www.imaginanet.com/blog/google-chrome-cumple-2-anos-y-trae-nuevas-funcionalidades.html</link>
			<guid>http://www.imaginanet.com/blog/google-chrome-cumple-2-anos-y-trae-nuevas-funcionalidades.html</guid>
			<comments>http://www.imaginanet.com/blog/google-chrome-cumple-2-anos-y-trae-nuevas-funcionalidades.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon,  6 Sep 2010 10:07:23 +0100</pubDate>
					<category><![CDATA[Google]]></category>
					<category><![CDATA[Navegadores]]></category>
					<description><![CDATA[Gogle Chrome est&aacute; en su mejor momento, habiendo alcanzado una cuota de mercado record del 7,5% durante el mes de agosto.
Por otra parte Google ya trabaja en nuevas funcionalidades para 'tablets' y 'netbooks'.
Entre las &uacute;ltimas revisiones de Chrome, hay&nbsp;dos nuevas actualizaciones: control de orientaci&oacute;n y...]]></description>
			<content:encoded><![CDATA[><p>Gogle Chrome est&aacute; en su mejor momento, <strong>habiendo alcanzado una cuota de mercado record del 7,5% durante el mes de agosto.</strong></p>
<p>Por otra parte Google ya trabaja en nuevas funcionalidades para 'tablets' y 'netbooks'.</p>
<p>Entre las &uacute;ltimas revisiones de Chrome, <em>hay</em>&nbsp;dos nuevas actualizaciones: control de orientaci&oacute;n y comandos de voz.</p>
<span>
<p>La primera de estas novedades en Chrome se antoja necesaria si tenemos en cuenta la proliferaci&oacute;n de 'tablets' y  'netbooks' en los &uacute;ltimos tiempos y, tambi&eacute;n, ante el lanzamiento (en  diciembre) de la versi&oacute;n de Chrome que Google desarrolla para estos dispositivos.</p>
<p>Ambas caracter&iacute;sticas ya estaban incluidas en el c&oacute;digo de Chromium,  pero el hecho de que est&eacute;n activadas por defecto hace pensar que pronto  estar&aacute;n disponibles en el navegador de Google.</p>
<p>Ante la importante actualizaci&oacute;n de sus grandes competidores: Firefox (con la llegada de la versi&oacute;n 4) e Internet Explorer (con su versi&oacute;n 9), Google sigue afinando y completando su sistema  operativo y no s&oacute;lo pensando en los equipos de sobremesa. De hecho, el  control de orientaci&oacute;n es algo obligado desde la proliferaci&oacute;n de  dispositivos m&oacute;viles como 'tablets' y 'netbooks'.</p>
<p><strong>Chrome&nbsp;contar&aacute; en su versi&oacute;n '7' con una aceleraci&oacute;n por hardware superior a Explorer 9 y Firefox 4</strong>, pero consumiendo m&aacute;s recursos que estos.</p>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=55</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/google-chrome-cumple-2-anos-y-trae-nuevas-funcionalidades.html</feedburner:origLink>
		</item>
				
		<item>
			<title>YouTube: Editor onLine de videos</title>
			<link>http://www.imaginanet.com/blog/youtube-editor-online-de-videos.html</link>
			<guid>http://www.imaginanet.com/blog/youtube-editor-online-de-videos.html</guid>
			<comments>http://www.imaginanet.com/blog/youtube-editor-online-de-videos.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Fri, 18 Jun 2010 10:16:24 +0100</pubDate>
					<category><![CDATA[Google Apps]]></category>
					<category><![CDATA[Google]]></category>
					<category><![CDATA[Web 2.0]]></category>
					<description><![CDATA[Cuando Apple acaba de anunciar una aplicaci&oacute;n para la edici&oacute;n onLine de videos, YouTube se ha adelantado y acaba de lanzar su editor de v&iacute;deo desde su web, as&iacute;, los usuarios ya no necesitan tener un programa de edici&oacute;n de v&iacute;deos que adem&aacute;s suele ser complicado de aprender a usar. El...]]></description>
			<content:encoded><![CDATA[>Cuando Apple acaba de anunciar una <a title="Ver post original" href="http://googleblog.blogspot.com/2010/06/edit-video-online-with-youtube-video.html" target="_blank">aplicaci&oacute;n para la edici&oacute;n onLine de videos</a>, YouTube se ha adelantado y acaba de lanzar su editor de v&iacute;deo desde su web, as&iacute;, los usuarios ya no necesitan tener un programa de edici&oacute;n de v&iacute;deos que adem&aacute;s suele ser complicado de aprender a usar. El editor online de YouTube es muy f&aacute;cil y sencillo de utilizar, y permite:<br />Crear un v&iacute;deo a partir de varios<br />Modificar el principio y fin del v&iacute;deo<br />Incluir m&uacute;sica en el v&iacute;deo desde AudioSwap<br />Despreocuparse de formatos cuando se crean v&iacute;deos nuevos.<br /><br />En <a title="Ver v&iacute;deo demo" href="http://www.youtube.com/watch?v=4YsQ6f125GY" target="_blank">este v&iacute;deo</a> se puede ver una demostraci&oacute;n de edici&oacute;n de un v&iacute;deo con esta aplicaci&oacute;n.<br /><br /><br />Google vs. Apple. &iexcl;Esto es competencia!]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=54</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/youtube-editor-online-de-videos.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Diseñando o re-diseñando tu página web a web 2.0</title>
			<link>http://www.imaginanet.com/blog/disenando-o-re-disenando-tu-pagina-web-a-web-20.html</link>
			<guid>http://www.imaginanet.com/blog/disenando-o-re-disenando-tu-pagina-web-a-web-20.html</guid>
			<comments>http://www.imaginanet.com/blog/disenando-o-re-disenando-tu-pagina-web-a-web-20.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Sat, 29 May 2010 10:21:30 +0100</pubDate>
					<category><![CDATA[Redes Sociales]]></category>
					<category><![CDATA[Marketing OnLine]]></category>
					<category><![CDATA[HTML5]]></category>
					<category><![CDATA[Accesibilidad]]></category>
					<category><![CDATA[Web 2.0]]></category>
					<description><![CDATA[&iquest;Has o&iacute;do hablar de web 2.0? Quien no! Est&aacute; de moda en internet hablar de web 2.0, aunque mucha gente no sabe muy bien lo qu&eacute; es.Todo el mundo habla sobre Web 2.0, pero mucha gente puede pensar que es una estrategia de marketing y un t&eacute;rmino cada vez m&aacute;s utilizado y est&aacute; siendo...]]></description>
			<content:encoded><![CDATA[><strong>&iquest;Has o&iacute;do hablar de web 2.0? </strong>Quien no! Est&aacute; de moda en internet hablar de web 2.0, aunque mucha gente no sabe muy bien lo qu&eacute; es.<br />Todo el mundo habla sobre Web 2.0, pero mucha gente puede pensar que es una estrategia de marketing y un t&eacute;rmino cada vez m&aacute;s utilizado y est&aacute; siendo sobre-utilizado.<br /><br />A pesar de todo lo que se est&aacute; hablando, hay otro cap&iacute;tulo sobre web 2.0, que al margen de la publicidad que se le est&aacute; dando y todo el marketing que rodea el t&eacute;rmino, es mucho m&aacute;s potente que todo eso.<br /><br />El concepto <strong>Web 2.0</strong> comenz&oacute; en una sesi&oacute;n de tormenta de ideas (brainstorming) que se llev&oacute; a cabo entre O'Reilly y MediaLive Int. En ella, analizaron las empresas web que hab&iacute;an sobrevivido a la quiebra que hubo de las punto com. En la sesi&oacute;n, analizaron a las empresas que hab&iacute;an sobrevivido a este breakdown. La conclusi&oacute;n que obtuvieron fue bastante interesante, la mayor&iacute;a de estas empresas ten&iacute;an muy pocas cosas en com&uacute;n. &iquest;Hab&iacute;a alguna conexi&oacute;n entre ellas? &iquest;Era esa quiebra un punto de inflexi&oacute;n para la web? O'Reilly y MediaLive cre&iacute;an que s&iacute;. Y entonces se les ocurri&oacute; el t&eacute;rmino Web 2.0<br /><br /><strong>Entonces, &iquest;Qu&eacute; es Web 2.0?</strong><br />En la wikipedia lo definen como una serie de servicios disponibles en internet de segunda generaci&oacute;n que permite la colaboraci&oacute;n entre los usuarios y compartir informaci&oacute;n online. Al contrario que la web de primera generaci&oacute;n, Web 2.0 le da al usuario una experiencia mucho m&aacute;s parecida a la de una aplicaci&oacute;n o programa de escritorio, que a la p&aacute;gina web est&aacute;tica t&iacute;pica de hace a&ntilde;os. Las aplicaciones o webs Web 2.0, suelen utilizar tecnolog&iacute;as o t&eacute;cnicas de programaci&oacute;n que aparecieron a final de los 90, web services APIs (1998), Ajax (1998) y web syndication (1997). Permiten con frecuencia el env&iacute;o masivo de mensajes a sectores o perfiles de usuarios (web social applications). El concepto en s&iacute;, puede englobar el concepto de "blogs" y de "wikis".<br /><br />No existe ninguna definici&oacute;n oficial que defina lo qu&eacute; es "Web 2.0", pero s&iacute; que hay una serie de cosas que todos los que utilizan este emblema tienen en com&uacute;n. Puedes visitar Flickr, del.icious, Wikipedia, Amazon (reviews - opiniones), y el sistema de reputaci&oacute;n de eBay, son sitios conocidos que nacieron con la web 2.0<br /><br />Web 2.0 es algo constru&iacute;do sobre un conocimiento colectivo. Proporciona una herramienta social aplicada a la web, dando m&aacute;s herramientas y conocimiento al usuario y d&aacute;ndoles la oportunidad de poder opinar libremente. Adem&aacute;s, hay que fijarse en que cada vez aparecen m&aacute;s aplicaciones web como hojas de c&aacute;lculo, procesadores de texto, listas de tareas, alertas, calendarios, p&aacute;ginas personales, blogs, comunidades, redes sociales, etc.<br /><br />Adem&aacute;s, la web 2.0 no utiliza la maquetaci&oacute;n cuadriculada de las tablas y sus renderizados. Los dise&ntilde;os web 2.0 han cambiado de las t&iacute;picas cajas cuadriculadas a la flexibilidad de las curvas, dise&ntilde;ar para la web de hoy permite dise&ntilde;os curvos y con movimiento, textos bonitos, gradientes, efectos chulis que parecen flash, y colores bonitos y agradables.<br /><br /><em>Esquinas redondeadas</em><br />Antes era bastante necesario el uso de cajas cuadriculadas, la web 2.0 ha aportado las esquinas redondeadas como algo b&aacute;sico y simple de realizar. Con la web anterior, crear una caja con esquinas redondeadas era una odisea de recorte de im&aacute;genes y posicionado de estas y no era tareal trivial.<br /><br /><em>Titulares que funcionan</em><br />La web 2.0 ha estandarizado el uso de titulares para resaltar los textos de importancia.<br /><br /><em>Gradientes</em><br />Oto elemento de dise&ntilde;o bastante usado en web 2.0 son los gradientes. Sobre todo es util en fondos, por ejemplo podemos tener un gradiente en la cabecera que acabe en un color utilizado como fondo de toda la p&aacute;gina web (ejemplo: http://www.photoshoplab.com/web20-design-kit.html)<br /><br />Y otras propiedades de dise&ntilde;o como <em>colores luminosos, pesta&ntilde;as, reflejos, efectos de movimiento, botones, iconos, y cajas de texto claras para el env&iacute;o de formularios</em>. Otro elemento que se utiliza mucho son las <em>nubes de tags</em>, en los &uacute;ltimos 6 meses se est&aacute;n poniendo de moda. Sitios que las usan son del.icio.us, Technorati, Flickr, ... Una nube de tags te da una idea abstracta de los temas que encontrar&aacute;s en un website, donde lo m&aacute;s popular, aparece a tama&ntilde;o mayor. Una nube de tags (tambi&eacute;n conocida como folkloromies), adem&aacute;s de ser algo moderno y de moda, le da al usuario una herramienta de b&uacute;squeda de contenidos muy f&aacute;cil, r&aacute;pida e intuitiva.<br /><br />Aunque hemos enumerado varias cosas de web 2.0, esta no es una tecnolog&iacute;a, tampoco es una nueva t&eacute;cnica de dise&ntilde;o, lo que realmente es una transici&oacute;n de la web, una transici&oacute;n hacia la experiencia de usuario, la web est&aacute; hecha para el usuario, y para ello utiliza t&eacute;cnicas de dise&ntilde;o y programaci&oacute;n soportadas desde finales de los 90.<br /><br />Tu web puede ser algo m&aacute;s que un lugar informativo. Tu presencia en la web es un lugar m&aacute;s, que con las t&eacute;cnicas de programaci&oacute;n adecuadas puedes montar todo un mundo alrededor de tu negocio<br /><br />En Imaginanet ofrecemos servicios de programaci&oacute;n y dise&ntilde;o web 2.0, si te interesa, visita nuestra secci&oacute;n de <a title="Qu&eacute; te ofrecemos de dise&ntilde;o web 2.0" href="/diseno-web.html">dise&ntilde;o web 2.0</a> para conocer qu&eacute; podemos ofrecerte en cuanto a dise&ntilde;o, o la de programaci&oacute;n web 2.0 si te interesa un desarrollo bien hecho.<br /><br /><br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=53</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/disenando-o-re-disenando-tu-pagina-web-a-web-20.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Google y Twitter hacen pública su política publicitaria</title>
			<link>http://www.imaginanet.com/blog/google-y-twitter-hacen-publica-su-politica-publicitaria.html</link>
			<guid>http://www.imaginanet.com/blog/google-y-twitter-hacen-publica-su-politica-publicitaria.html</guid>
			<comments>http://www.imaginanet.com/blog/google-y-twitter-hacen-publica-su-politica-publicitaria.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Fri, 28 May 2010 23:34:28 +0100</pubDate>
					<category><![CDATA[Redes Sociales]]></category>
					<category><![CDATA[Marketing OnLine]]></category>
					<category><![CDATA[Google]]></category>
					<description><![CDATA[En la misma semana, estas dos empresas de internet han hecho p&uacute;blica su pol&iacute;tica publicitaria&nbsp;online.Google en su blog hace p&uacute;blico por primera vez, las comisiones que reciben los due&ntilde;os de websites con AdSense. El 68% de los ingresos generados se entregan a los propietarios de websites.Twitter por...]]></description>
			<content:encoded><![CDATA[><p>En la misma semana, estas dos empresas de internet han hecho p&uacute;blica su pol&iacute;tica publicitaria&nbsp;online.<br /><br />Google en su blog hace p&uacute;blico por primera vez, las comisiones que reciben los due&ntilde;os de websites con AdSense. El 68% de los ingresos generados se entregan a los propietarios de websites.<br /><br />Twitter por otra parte ha anunciado que controlar&aacute; m&aacute;s la publicidad e impedir&aacute; que terceros vendan tweets publicitarios gestionados por Twitter, seg&uacute;n anuncian "no permitir&aacute;n inyectar mensajes remunerados en flujos de mensajes de su red social". Toman esta medida por el engorro que puede suponer el aumento descontrolado de publicidad mal gestionada.&nbsp;</p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=50</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/google-y-twitter-hacen-publica-su-politica-publicitaria.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Datos de usuarios de Twitter</title>
			<link>http://www.imaginanet.com/blog/datos-de-usuarios-de-twitter.html</link>
			<guid>http://www.imaginanet.com/blog/datos-de-usuarios-de-twitter.html</guid>
			<comments>http://www.imaginanet.com/blog/datos-de-usuarios-de-twitter.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Sat, 29 May 2010 00:06:40 +0100</pubDate>
					<category><![CDATA[Redes Sociales]]></category>
					<category><![CDATA[Marketing OnLine]]></category>
					<description><![CDATA[Las cifras de uso de Twitter a nivel mundial, o en ingl&eacute;s, son impresionantes. No lo son tanto en espa&ntilde;ol.Hoy existen 106 millones de usuarios, que env&iacute;an 55 millones de tweets al dia. Sale a 640 tweets por segundo.Diariamente, se captan 300.000 usuarios nuevos. Y diariamente acceden 180 millones de visitantes...]]></description>
			<content:encoded><![CDATA[>Las cifras de uso de Twitter a nivel mundial, o en ingl&eacute;s, son impresionantes. No lo son tanto en espa&ntilde;ol.<br /><br />Hoy existen 106 millones de usuarios, que env&iacute;an 55 millones de tweets al dia. Sale a 640 tweets por segundo.<br />Diariamente, se captan 300.000 usuarios nuevos. Y diariamente acceden 180 millones de visitantes &uacute;nicos.<br /><br />Hay que tener en cuenta que los mensajes (tweets) se encuentran limitados a 140 caracteres. Los tweets tiene que ser muy cortos y condensados. Cuando hablamos de caracteres hay que contar letras, signos de puntuaci&oacute;n y espacios.<br /><br />El Instituto Max Planck de Alemania, hizo un examen de la actividad en Twitter de una muestra aleatoria de 300.000 usuarios para investigar c&oacute;mo los usuarios usan el servicio, ya que se sabe que el servicio llama mucho la atenci&oacute;n de medios y celebridades, pero no se saben sus efectos &iquest;lo usan los amigos para comunicarse? &iquest;se usa como medio de expresi&oacute;n libre? &iquest;herramienta de marketing online?<br /><br />Los resultados sugieren que el n&uacute;mero de seguidores no tiene relaci&oacute;n con lo que se influye sobre ellos. Es decir, parece no muy rentable el dinero que pagan algunas empresas por conseguir seguidores. El tener muchos seguidores en Twitter significa muy poco. As&iacute; que el presidente de Venezuela que busca el mill&oacute;n de seguidores, tendr&aacute; poca influencia sobre ellos.<br /><br />Existe poca interactividad. Se debe poner m&aacute;s &eacute;nfasis en aumentar la capacidad de respuesta de la audiencia en los Twitter. Hay mucha comunicaci&oacute;n de una &uacute;nica v&iacute;a. Aunque tambi&eacute;n se expone que las empresas que publican noticias han encontrado un gran aliado en Twitter para enlazar a sus noticias comentarios o tweets.<br /><br />Existen pocos twitters activos realmente. &nbsp;Se usa mucho para buscar y leer mensajes de otros, pero poco para generar nuevos. S&oacute;lo el 3% de los twitters tienen m&aacute;s de 100 seguidores. El 24% de los twitters tiene 0 seguidores.<br /><br />Por sexos, un 45% son hombres y el 55% mujeres, aunque los hombres tienen un 15% m&aacute;s seguidores que ellas.<br /><br />El lenguaje m&aacute;s usado es el ingl&eacute;s, el 61% de los usuarios son de habla inglesa, y s&oacute;lo el 4% son en idioma espa&ntilde;ol.<br />Pa&iacute;ses desde donde m&aacute;s se usa: USA el 33%, seguido de India, Alemania, Jap&oacute;n y Reino Unido. De latinoam&eacute;rica es muy popular en Brasil.<br /><br /><br /><br />&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=52</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/datos-de-usuarios-de-twitter.html</feedburner:origLink>
		</item>
				
		<item>
			<title>FaceBook llega a los 10 millones de usuarios en España</title>
			<link>http://www.imaginanet.com/blog/facebook-llega-a-los-10-millones-de-usuarios-en-espana.html</link>
			<guid>http://www.imaginanet.com/blog/facebook-llega-a-los-10-millones-de-usuarios-en-espana.html</guid>
			<comments>http://www.imaginanet.com/blog/facebook-llega-a-los-10-millones-de-usuarios-en-espana.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Fri, 28 May 2010 23:45:19 +0100</pubDate>
					<category><![CDATA[Redes Sociales]]></category>
					<category><![CDATA[Marketing OnLine]]></category>
					<description><![CDATA[FaceBook ha hecho p&uacute;blico que sobrepasa los 10 millones de usuarios en Espa&ntilde;a, usuarios registrados y que acceden a su cuenta con frecuencia.FaceBook naci&oacute; en 2004, y a d&iacute;a de hoy, una cuarta parte de la poblaci&oacute;n espa&ntilde;ola est&aacute; registrada en FaceBook, y el 70% de estos, se conecta...]]></description>
			<content:encoded><![CDATA[>FaceBook ha hecho p&uacute;blico que sobrepasa los 10 millones de usuarios en Espa&ntilde;a, usuarios registrados y que acceden a su cuenta con frecuencia.<br /><br />FaceBook naci&oacute; en 2004, y a d&iacute;a de hoy, una cuarta parte de la poblaci&oacute;n espa&ntilde;ola est&aacute; registrada en FaceBook, y el 70% de estos, se conecta todos los d&iacute;as. As&iacute; Espa&ntilde;a se pone en la d&eacute;cima plaza a nivel muncial en n&uacute;mero de usuarios activos.&nbsp;<br /><br />Si a esto se a&ntilde;ade que FaceBook tiene 62'3 millones de usuarios en espa&ntilde;ol a nivel mundial, lo convierte en una red para la difusi&oacute;n de mensajes muy atractiva en nuestro idioma.&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=51</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/facebook-llega-a-los-10-millones-de-usuarios-en-espana.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Internet TV. Alianza de Google con Sony  e Intel.</title>
			<link>http://www.imaginanet.com/blog/internet-tv-alianza-de-google-con-sony-e-intel.html</link>
			<guid>http://www.imaginanet.com/blog/internet-tv-alianza-de-google-con-sony-e-intel.html</guid>
			<comments>http://www.imaginanet.com/blog/internet-tv-alianza-de-google-con-sony-e-intel.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Tue, 18 May 2010 13:08:13 +0100</pubDate>
					<category><![CDATA[Internet]]></category>
					<category><![CDATA[Google Apps]]></category>
					<category><![CDATA[Google]]></category>
					<description><![CDATA[Seg&uacute;n una encuesta realizada por Intel a nivel mundial, el electrodom&eacute;stico que m&aacute;s desear&iacute;an tener los ciudadanos es un cable que conecte internet con su televisor. El mi&eacute;rcoles 19 de mayo Google lo presenta en San Francisco. Si algui&eacute;n piensa que la TDT ha tra&iacute;do lo m&aacute;s...]]></description>
			<content:encoded><![CDATA[>Seg&uacute;n una encuesta realizada por Intel a nivel mundial, el electrodom&eacute;stico que m&aacute;s desear&iacute;an tener los ciudadanos es un cable que conecte internet con su televisor. El mi&eacute;rcoles 19 de mayo Google lo presenta en San Francisco. Si algui&eacute;n piensa que la TDT ha tra&iacute;do lo m&aacute;s moderno, la TDT ha sido un adelanto, el futuro est&aacute; en un sistema abierto que ha desarrollado Google que instala internet dentro del televisor y dentro del mismo mando a distancia. Sea cual sea el modelo y marca de estos.<br /><br />Intel ha proporcionado los chips y las televisiones con las que se ha desarrollado son de Sony, aunque se prevee que se pueda instalar en todas las marcas del sector. No se sabe todav&iacute;a si GoogleTV o SmartTV proporcionar&aacute; acceso a todo internet o s&oacute;lo a sus webs como YouTube, Gmail, Picasa, Chrome, Buzz, ...<br /><br />Hace un a&ntilde;o que se venden televisiones con programas que incluyen servicios de Yahoo! como el tiempo o la bolsa. El objetivo de Google es inclu&iacute;r internet en el televisor, y si lo logra "La televisi&oacute;n como concepto va a desaparecer; quedar&aacute; el televisor aunque al fin y al cabo es una pantalla".<br /><br />Siempre se ha dicho que el ordenador nunca ganar&iacute;a al televisor, porque el sof&aacute; es m&aacute;s c&oacute;modo que la silla, pero parece que todo llega. Ahora hay que hacer apuestas por el mando del televisor, y el que tiene todos los boletos es el tel&eacute;fono m&oacute;vil. La aplicaci&oacute;n m&aacute;s descargada en Espa&ntilde;a para iPhone es para ver la televisi&oacute;n de catalu&ntilde;a en directo.<br /><br />La competencia en la TV tiene dos nuevos competidores a nivel mundial: Apple y Google.]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=49</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/internet-tv-alianza-de-google-con-sony-e-intel.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Rediseño web 2.0 para dispositivos móviles táctiles</title>
			<link>http://www.imaginanet.com/blog/rediseno-web-20-para-dispositivos-moviles-tactiles.html</link>
			<guid>http://www.imaginanet.com/blog/rediseno-web-20-para-dispositivos-moviles-tactiles.html</guid>
			<comments>http://www.imaginanet.com/blog/rediseno-web-20-para-dispositivos-moviles-tactiles.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Tue, 18 May 2010 12:49:05 +0100</pubDate>
					<category><![CDATA[Internet]]></category>
					<category><![CDATA[HTML5]]></category>
					<category><![CDATA[Accesibilidad]]></category>
					<category><![CDATA[Web 2.0]]></category>
					<description><![CDATA[Desde el lanzamiento del iPhone, y reforzado por el nuevo iPad, los fabricantes de dispositivos m&oacute;viles se han inclinado por las pantallas t&aacute;ctiles (multitouch interfaces) y ahora parece llegar a los dispositivos de escritorio como el iPad. Este nuevo entorno de navegaci&oacute;n, hace que el dise&ntilde;o web se...]]></description>
			<content:encoded><![CDATA[>Desde el lanzamiento del iPhone, y reforzado por el nuevo iPad, los fabricantes de dispositivos m&oacute;viles se han inclinado por las pantallas t&aacute;ctiles (multitouch interfaces) y ahora parece llegar a los dispositivos de escritorio como el iPad. Este nuevo entorno de navegaci&oacute;n, hace que el dise&ntilde;o web se piense tambi&eacute;n para estos dispositivos, ya que aunque no lo parezca, la revoluci&oacute;n est&aacute; aqu&iacute;.<br /><br />Steve Jobs dijo que Flash no sirve para los dispositivos t&aacute;ctiles, hay otras facetas de la web que hay que modificar para poder dar un buen soporte a este tipo de aparatos.<br />Raju Vegesna, comenta que estos dispositivos est&aacute;n pidiendo un cambio en la forma de usar los ordenadores, llevamos 20 a&ntilde;os con la misma interface. Los men&uacute;s desplegables son muy f&aacute;ciles de usar en dispositivos tradicionales pero no pasa lo mismo con las pantallas t&aacute;ctiles. Distintos toques en la pantalla t&aacute;ctil no se reconocen com debieran, ya que los servicios web actuales, la mayor&iacute;a de ellos, no est&aacute;n concebidos para la navegaci&oacute;n t&aacute;ctil.<br /><br />As&iacute;, surge una necesidad bastante aconsejable: las aplicaciones web y servicios web se tienen que redise&ntilde;ar para adaptarse tambi&eacute;n a esta forma de navegaci&oacute;n, o deben crearse formas alternativas de navegaci&oacute;n pensadas para estos dispositivos.<br /><br /><a href="http://www.technologyreview.com/computing/25236/?nlid=2950&amp;a=f" target="_blank">Ver noticia original en ingl&eacute;s</a>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=48</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/rediseno-web-20-para-dispositivos-moviles-tactiles.html</feedburner:origLink>
		</item>
				
		<item>
			<title>El número de usuarios de Internet en España sigue aumentando</title>
			<link>http://www.imaginanet.com/blog/el-numero-de-usuarios-de-internet-en-espana-sigue-aumentando.html</link>
			<guid>http://www.imaginanet.com/blog/el-numero-de-usuarios-de-internet-en-espana-sigue-aumentando.html</guid>
			<comments>http://www.imaginanet.com/blog/el-numero-de-usuarios-de-internet-en-espana-sigue-aumentando.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 17 May 2010 18:04:25 +0100</pubDate>
					<category><![CDATA[Internet]]></category>
					<category><![CDATA[Redes Sociales]]></category>
					<category><![CDATA[Marketing OnLine]]></category>
					<description><![CDATA[Seg&uacute;n un estudio de Internet World Stats, Espa&ntilde;a es el sexto usuario de internet en Europa y el d&eacute;cimo cuarto puesto a nivel mundial. Las comunidades donde m&aacute;s usuarios existen son Madrid, Catalu&ntilde;a y Pa&iacute;s Vasco, mientras que Murcia y Extremadura son las que menos usuarios tienen.El...]]></description>
			<content:encoded><![CDATA[><p>Seg&uacute;n un estudio de Internet World Stats, Espa&ntilde;a es el sexto usuario de internet en Europa y el d&eacute;cimo cuarto puesto a nivel mundial. Las comunidades donde m&aacute;s usuarios existen son Madrid, Catalu&ntilde;a y Pa&iacute;s Vasco, mientras que Murcia y Extremadura son las que menos usuarios tienen.<br /><br />El &iacute;ndice de penetraci&oacute;n de internet en la poblaci&oacute;n espa&ntilde;ola es del 72% (en el ranking mundial el puesto ocupado ser&iacute;a el 20) y tiene un crecimiento medio del 440% desde el a&ntilde;o 2000.<br /><br />En el ranking de uso de redes sociales, Espa&ntilde;a ocupa el s&eacute;ptimo puesto a nivel mundial, el 80% de los usuarios est&aacute; en una red social y el 60% consulta estas todos los d&iacute;as.&nbsp;<br /><br />En el informe se recoge que los &iacute;ndices de penetraci&oacute;n a destacar son: Madrid (58%), Catalu&ntilde;a (57%) y Pa&iacute;s Vasco (55%). Mientras que las comunidades con menor &iacute;ndice son Murcia (39%) y Extremadura (36%), estas dos &uacute;ltimas seg&uacute;n el informe, son las que menor crecimiento han tenido en los &uacute;ltimos a&ntilde;os.<br /><br /><strong>Perfil de usuario de internet en Espa&ntilde;a</strong><br />Un 55% son hombres y un 45% mujeres. Una cuarta parte est&aacute; entre los 14 y 24 a&ntilde;os, otra entre 25 y 34 a&ntilde;os, otra entre 35 y 44 a&ntilde;os y el &uacute;ltimo grupo es de m&aacute;s de 45 a&ntilde;os. El perfil de usuario que m&aacute;s ha crecido es el de m&aacute;s de 55 a&ntilde;os.<br />Adem&aacute;s, se informa de que el perfil social del usuario de la web es m&aacute;s alto que el de la poblaci&oacute;n general.<br /><br /><strong>Las redes sociales m&aacute;s populares en Espa&ntilde;a: FaceBook, Tuenti y Twitter.</strong><br />FaceBook con 7.900.000 usuarios es la m&aacute;s importante, seguida de Tuenti con 7 millones y Twitter. En el informe se comenta que las empresas que utilizan redes sociales superan en beneficios e ingresos a la competencia.<br /><br />Si a esto le a&ntilde;adimos que un 30% de los usuarios que utiliza redes sociales recuerda la publicidad de estas, el 52% se convierte en fan de una marca y el 46% habla bien de una marca.&nbsp;</p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=47</wfw:commentRss>
			<slash:comments>2</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/el-numero-de-usuarios-de-internet-en-espana-sigue-aumentando.html</feedburner:origLink>
		</item>
				
		<item>
			<title>GobolNet, la red social de los municipios españoles</title>
			<link>http://www.imaginanet.com/blog/gobolnet-la-red-social-de-los-municipios-espanoles.html</link>
			<guid>http://www.imaginanet.com/blog/gobolnet-la-red-social-de-los-municipios-espanoles.html</guid>
			<comments>http://www.imaginanet.com/blog/gobolnet-la-red-social-de-los-municipios-espanoles.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 17 May 2010 17:50:54 +0100</pubDate>
					<category><![CDATA[Internet]]></category>
					<category><![CDATA[Redes Sociales]]></category>
					<category><![CDATA[Marketing OnLine]]></category>
					<description><![CDATA[La FEMP (Federaci&oacute;n Espa&ntilde;ola de Municipios y Provincias) acaba de lanzar GOBOLnet, la red social lanzada con el objetivo de ser un canal de comunicaci&oacute;n cont&iacute;nuo con los cargos pol&iacute;ticos, t&eacute;cnicos y cualquier trabajador de las entidades locales con los ciudadanos. Desde esta red social se...]]></description>
			<content:encoded><![CDATA[>La FEMP (Federaci&oacute;n Espa&ntilde;ola de Municipios y Provincias) acaba de lanzar GOBOLnet, la red social lanzada con el objetivo de ser un canal de comunicaci&oacute;n cont&iacute;nuo con los cargos pol&iacute;ticos, t&eacute;cnicos y cualquier trabajador de las entidades locales con los ciudadanos. Desde esta red social se podr&aacute;n realizar adem&aacute;s video conferencias, intercambiar documentos, enviar mensajes masivos a toda la red GobolNet, etc.<br /><br />Esta experiencia, es un proyecto pionero a nivel mundial ya que aporta nuevos conceptos a las redes sociales.&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=46</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/gobolnet-la-red-social-de-los-municipios-espanoles.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Pagos en serie de PayPal</title>
			<link>http://www.imaginanet.com/blog/pagos-en-serie-de-paypal.html</link>
			<guid>http://www.imaginanet.com/blog/pagos-en-serie-de-paypal.html</guid>
			<comments>http://www.imaginanet.com/blog/pagos-en-serie-de-paypal.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Fri, 14 May 2010 13:25:40 +0100</pubDate>
					<category><![CDATA[Comercio electrónico]]></category>
					<category><![CDATA[PHP]]></category>
					<description><![CDATA[Los pagos en serie de PayPal (batch payments) sirven para realizar m&uacute;ltiples pagos de forma masiva a personas que tengan una cuenta de PayPal para realizar pagos masivos o transferencias peri&oacute;dicas de dinero que es necesario para ciertas empresas o tiendas en Internet.
La gran ventaja es que podemos programar una...]]></description>
			<content:encoded><![CDATA[><p>Los pagos en serie de PayPal (<em>batch payments</em>) sirven para realizar m&uacute;ltiples pagos de forma masiva a personas que tengan una cuenta de PayPal para <span style="text-decoration: underline;">realizar pagos masivos o transferencias peri&oacute;dicas de dinero</span> que es necesario para ciertas <a title="Tiendas, negocios y empresas virtuales" href="http://www.imaginanet.com/diseno-web/tiendas-virtuales.html">empresas o tiendas en Internet</a>.</p>
<p>La gran ventaja es que podemos programar una aplicaci&oacute;n que realice este pago a los usuarios que nosotros deseemos. Para ello deberemos crear un fichero en el que los datos de cada pago estar&aacute;n separados por tabulaciones y cada pago por un salgo de l&iacute;nea. El formato de cada pago es el siguiente:</p>
<ol>
<li><strong>Direcci&oacute;n de correo electr&oacute;nico</strong> del usuario</li>
<li><strong>Importe</strong> en el formato 12.34</li>
<li><strong>C&oacute;digo de la moneda</strong> de pago (<a href="https://www.paypal.com/es/cgi-bin/webscr?cmd=_batch-payment-format-outside">monedas de pago en PayPal</a>). En cada archivo s&oacute;lo puede haber una moneda, por lo que si tenemos que hacer varios pagos de varias monedas deberemos generar diferentes archivos</li>
<li><strong>Identificador</strong> del pago (sin espacios)</li>
<li><strong>Texto explicativo</strong> del pago (opcional)</li>
</ol>
<p>Un ejemplo de archivo de pago en serie ser&iacute;a el siguiente:</p>
<pre class="code">123456@dompruebas.es	2.43	EUR	transferencia_2245	Pago del d&iacute;a  14 de Mayo
abcdfeg@dompruebas.es	122.53	EUR	transferencia_2246	Pago del d&iacute;a  14 de Mayo
</pre>
<p>&nbsp;</p>
<h3>Ejemplo de generaci&oacute;n de pago en serie en PHP</h3>
<p>Con el siguiente sencillo ejemplo, conseguiremos hacer un script que realice pagos en serie. La fuente la suponemos de una base de datos, y tras crear el archivo, deberemos subir el archivo a la web de PayPal para realizar los pagos:</p>
<pre class="code php">&lt;?php
&nbsp;
// Resultados obtenidos de una base de datos, XML, etc.
$moneda = "EUR";
&nbsp;
$bp[0]['email'] = "123456@dompruebas.es";
$bp[0]['importe'] = "2.43";
$bp[0]['identificador'] = "transferencia_2245";
$bp[0]['mensaje'] = "Pago del d&iacute;a  14 de Mayo";
&nbsp;
$bp[1]['email'] = "abcdfeg@dompruebas.es";
$bp[1]['importe'] = "122.53";
$bp[1]['identificador'] = "transferencia_2246";
$bp[1]['mensaje'] = "Pago del d&iacute;a  14 de Mayo";
&nbsp;
// Procesamos
$archivo = "";
$icount = count($bp);
for($i=0;$i&lt;$icount;$i++) {
   $archivo.=$bp[$i]['email']."\t";
   $archivo.=$bp[$i]['importe']."\t";
   $archivo.=$moneda."\t";
   $archivo.=$bp[$i]['identificador']."\t";
   $archivo.=$bp[$i]['mensaje']."\r\n";
}
&nbsp;
$nombre_archivo = date("Ymd").'_'.$moneda.'_bp_'.time().'.txt';
$fd=fopen($nombre_archivo, 'a');
fwrite($fd,$archivo);
fclose($fd);
?&gt;
</pre>
<p>Para m&aacute;s informaci&oacute;n, podemos leer la <a href="https://www.paypal.com/es/cgi-bin/webscr?cmd=_batch-payment-overview-outside">documentaci&oacute;n oficial de los pagos en serie</a>.</p>
<p>&nbsp;</p>
<h3>Art&iacute;culos relacionados:</h3>
<ul>
<li><a title="Utilizar PayPal para vender en tu web" href="http://www.imaginanet.com/blog/como-utilizar-paypal-para-realizar-compras-en-tu-web.html">C&oacute;mo pagar en tu web con PayPal</a></li>
</ul>
<p>&nbsp;</p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=45</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/pagos-en-serie-de-paypal.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Se terminan las IPs</title>
			<link>http://www.imaginanet.com/blog/se-terminan-las-ips.html</link>
			<guid>http://www.imaginanet.com/blog/se-terminan-las-ips.html</guid>
			<comments>http://www.imaginanet.com/blog/se-terminan-las-ips.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Thu, 13 May 2010 12:40:52 +0100</pubDate>
					<category><![CDATA[Internet]]></category>
					<description><![CDATA[Est&aacute; previsto que el a&ntilde;o que viene se agoten las direcciones ip seg&uacute;n el esquema IPv4, el cual se mejor&oacute; con el IPv6 pero muchas empresas y pa&iacute;ses todav&iacute;a no lo han implantado.Este hecho, implica que el d&iacute;a 9 de septiembre de 2012 se agotar&aacute;n las direcciones IP (seg&uacute;n...]]></description>
			<content:encoded><![CDATA[>Est&aacute; previsto que el a&ntilde;o que viene se agoten las direcciones ip seg&uacute;n el esquema IPv4, el cual se mejor&oacute; con el IPv6 pero muchas empresas y pa&iacute;ses todav&iacute;a no lo han implantado.<br /><br />Este hecho, implica que el d&iacute;a 9 de septiembre de 2012 se agotar&aacute;n las direcciones IP (seg&uacute;n los expertos, este d&iacute;a se entregar&aacute; el &uacute;ltimo rango de direcciones IP). El protocolo IPv4 permite 4.000 billones de direcciones IP, una cantidad suficiente cuando naci&oacute; la WWW, pero hoy en d&iacute;a es necesario ampliar el n&uacute;mero.]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=44</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/se-terminan-las-ips.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Cómo crear una campaña de publicidad en móviles. Claves a tener en cuenta.</title>
			<link>http://www.imaginanet.com/blog/como-crear-una-campana-de-publicidad-en-moviles-claves-a-tener-en-cuenta.html</link>
			<guid>http://www.imaginanet.com/blog/como-crear-una-campana-de-publicidad-en-moviles-claves-a-tener-en-cuenta.html</guid>
			<comments>http://www.imaginanet.com/blog/como-crear-una-campana-de-publicidad-en-moviles-claves-a-tener-en-cuenta.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Thu, 13 May 2010 12:34:18 +0100</pubDate>
					<category><![CDATA[Marketing OnLine]]></category>
					<description><![CDATA[Seg&uacute;n un estudio realizado en 2008 por la Uni&oacute;n Internacional de Telecomunicaciones, en el a&ntilde;o 2008 el 61% de la poblaci&oacute;n mudial dispon&iacute;a de tel&eacute;fono m&oacute;vil. Si tenemos en cuenta que ya hace dos a&ntilde;os de este informe y que la cifra es a nivel mundial, podemos decir que todas...]]></description>
			<content:encoded><![CDATA[>Seg&uacute;n un estudio realizado en 2008 por la Uni&oacute;n Internacional de Telecomunicaciones, en el a&ntilde;o 2008 <span style="text-decoration: underline;">el 61% de la poblaci&oacute;n mudial </span>dispon&iacute;a de tel&eacute;fono m&oacute;vil. Si tenemos en cuenta que ya hace dos a&ntilde;os de este informe y que la cifra es a nivel mundial, podemos decir que todas las personas son usuarios de tel&eacute;fono m&oacute;vil. Tenemos un porcentaje de poblaci&oacute;n casi total al que podemos enviarle un mensaje publicitario sin tener que saber donde est&aacute;n.<br /><br />El marketing m&oacute;vil tienen un potencial brutal, ya que la llegada de internet al m&oacute;vil lo ha convertido en una de las mejores opciones para dar a conocer o fomentar un producto, servicio o marca. Adem&aacute;s, es necesario tener en cuenta que al ser un medio personal, permite una segmentaci&oacute;n para la creaci&oacute;n de campa&ntilde;as publicitarias dise&ntilde;adas especialmente para el target al que se dirige.<br /><br /><span style="text-decoration: underline;">Cosas importantes a tener en cuenta cuando pensemos lanzar una campa&ntilde;a publicitaria dirigida a dispositivos m&oacute;viles:</span><br /><br />- <strong>P&aacute;ginas de llegada distintas dependiendo del tipo de m&oacute;vil</strong>: Al tener distintos dispositivos m&oacute;viles con distintas caracter&iacute;sticas, si queremos que nuestros contenidos sean compatibles con todos los modelos de m&oacute;vil, es necesario crear landing pages propias para cada uno.<br />- <strong>Dar contenidos interesantes</strong>. Si ofrecemos contenidos que aportan valor a&ntilde;adido a la campa&ntilde;a, provocamos un feedback positivo de los usuarios. Por ejemplo podemos enviar bonus descuento, promociones con descuentos, informaci&oacute;n interesante para el usuario, v&iacute;deos, etc, incrementaremos el ratio de usuarios atra&iacute;dos por la campa&ntilde;a.<br />- <strong>Utilizar varias opciones</strong>. Cuando se comienza con una estrategia publicitaria, es aconsejable realizar un test con cada modelo planteado para as&iacute; conocer cual funciona mejor con un servicio, marca o producto. El CTR de una campa&ntilde;a sin optimizar no supera el 3%, esta misma campa&ntilde;a optimizada para el target, puede darnos un CTR del 5% o superior.<br />- <strong>Piensa bien el mensaje que quieres transmitir</strong>. Los mensajes publicitarios deben ser cortos, directos y f&aacute;ciles de entender, si adem&aacute;s incluye contenidos virales como galer&iacute;as de fotos, videos, etc, el mensaje funciona por s&iacute; solo.<br /><br />Imaginanet es una <strong><a title="&quot;Imaginanet," href="/imaginanet/&quot;/&quot;">agencia web</a></strong> que puede ayudarte con estrategias de marketing en nuevos medios.]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=43</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/como-crear-una-campana-de-publicidad-en-moviles-claves-a-tener-en-cuenta.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Posicionamiento en buscadores, la técnica de marketing online más eficaz</title>
			<link>http://www.imaginanet.com/blog/posicionamiento-en-buscadores-la-tecnica-de-marketing-online-mas-eficaz.html</link>
			<guid>http://www.imaginanet.com/blog/posicionamiento-en-buscadores-la-tecnica-de-marketing-online-mas-eficaz.html</guid>
			<comments>http://www.imaginanet.com/blog/posicionamiento-en-buscadores-la-tecnica-de-marketing-online-mas-eficaz.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed, 12 May 2010 11:57:08 +0100</pubDate>
					<category><![CDATA[SEO]]></category>
					<category><![CDATA[Marketing OnLine]]></category>
					<description><![CDATA[Acaba de hacerse p&uacute;blico un estudio en el que se destaca la t&eacute;cnica de posicionamiento en buscadores como la pr&aacute;ctica de marketing online m&aacute;s importante para todo negocio montado en la red.El posicionamiento en buscadores o SEO (Search Engine Optimization), tiene como objetivo que la web a posicionar...]]></description>
			<content:encoded><![CDATA[>Acaba de hacerse p&uacute;blico un estudio en el que se destaca la t&eacute;cnica de posicionamiento en buscadores como la pr&aacute;ctica de marketing online m&aacute;s importante para todo negocio montado en la red.<br /><br />El posicionamiento en buscadores o SEO (Search Engine Optimization), tiene como objetivo que la web a posicionar aparezca en primeras posiciones de b&uacute;squeda en los distintos buscadores de internet.<br /> <br />Seg&uacute;n los expertos, la optimizaci&oacute;n SEO ser&aacute; la m&aacute;s rentable y la m&aacute;s efectiva t&eacute;cnica de <a title="Imaginanet: Agencia de marketing online" href="/marketing-online.html">marketing online</a>, tanto para empresas que operen en internet u otras que no lo hagan pero tengan presencia. Esto confirma una encuesta que se hizo recientemente en la que el 95% de las pymes online consideran el posicionamiento en buscadores como la t&eacute;cnica de ventas m&aacute;s rentable para su empresa.<br /><br />Aunque se est&aacute; intentando tambi&eacute;n innovar y vender al usuario nuevas tendencias como lo son las redes sociales y otros entornos novedosos, actualmente la t&eacute;cnica m&aacute;s rentable es el SEO, aunque no hay que dejar de fijarse en medios como las redes sociales, ya que juegan un papel importante y jugar&aacute;n un papel m&aacute;s importante en el futuro en lo que respecta al posicionamiento en buscadores.<br /><br />Conclusi&oacute;n: una de las estrategias de <a title="Imaginanet, agencia de marketing online" href="/marketing-online.html">marketing online</a> m&aacute;s importante es el posicionamiento en buscadores.&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=42</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/posicionamiento-en-buscadores-la-tecnica-de-marketing-online-mas-eficaz.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Google lanza un tablet para competir con Apple iPad</title>
			<link>http://www.imaginanet.com/blog/google-lanza-un-tablet-para-competir-con-apple-ipad.html</link>
			<guid>http://www.imaginanet.com/blog/google-lanza-un-tablet-para-competir-con-apple-ipad.html</guid>
			<comments>http://www.imaginanet.com/blog/google-lanza-un-tablet-para-competir-con-apple-ipad.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed, 12 May 2010 11:35:17 +0100</pubDate>
					<category><![CDATA[Google]]></category>
					<description><![CDATA[Verizon en breve va a lanzar un tablet para cuyo lanzamiento cuenta con la ayuda tecnol&oacute;gica de Google.Seg&uacute;n se confirma en la noticia (ver en ingl&eacute;s), est&aacute;n trabajando con Google en el desarrollo del tablet para as&iacute; competir con AT&amp;T.Google s&oacute;lo ha dicho que su software est&aacute;...]]></description>
			<content:encoded><![CDATA[>Verizon en breve va a lanzar un tablet para cuyo lanzamiento cuenta con la ayuda tecnol&oacute;gica de Google.<br /><br />Seg&uacute;n se confirma en la noticia (<a title="Ver noticia original" href="http://online.wsj.com/article/SB10001424052748704250104575238680540806288.html?mod=WSJ_Tech_INTL_LSMODULE" target="_blank">ver en ingl&eacute;s</a>), est&aacute;n trabajando con Google en el desarrollo del tablet para as&iacute; competir con AT&amp;T.<br /><br />Google s&oacute;lo ha dicho que su software est&aacute; preparado para que se use en cualquier dispositivo, as&iacute; que se supone que usar&aacute; Android como sistema operativo.<br /><br />Esta noticia aumenta la guerra entre Google y Apple, que desde hace unos meses han comenzado una batalla que parece plantearse dura y larga.&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=41</wfw:commentRss>
			<slash:comments>1</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/google-lanza-un-tablet-para-competir-con-apple-ipad.html</feedburner:origLink>
		</item>
				
		<item>
			<title>En USA, las editoriales van con Google</title>
			<link>http://www.imaginanet.com/blog/en-usa-las-editoriales-van-con-google.html</link>
			<guid>http://www.imaginanet.com/blog/en-usa-las-editoriales-van-con-google.html</guid>
			<comments>http://www.imaginanet.com/blog/en-usa-las-editoriales-van-con-google.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Tue, 11 May 2010 11:15:22 +0100</pubDate>
					<category><![CDATA[Comercio electrónico]]></category>
					<category><![CDATA[Google]]></category>
					<description><![CDATA[El buscador americano Google, ha conseguido que las editoriales de Estados Unidos vean bien la entrada del buscador en el negocio de los libros electr&oacute;nicos, uno de los grandes intereses que Google ha declarado abiertamente.Parece ser que la tienda virtual (e-commerce) de libros electr&oacute;nicos (eBooks) de Google...]]></description>
			<content:encoded><![CDATA[>El buscador americano Google, ha conseguido que las editoriales de Estados Unidos vean bien la entrada del buscador en el negocio de los libros electr&oacute;nicos, uno de los grandes intereses que Google ha declarado abiertamente.<br /><br />Parece ser que la <a title="Imaginanet desarrolla tiendas virtuales / e-commerce apps" href="/diseno-web/tiendas-virtuales.html">tienda virtual (e-commerce)</a> de libros electr&oacute;nicos (eBooks) de Google empezar&aacute; a funcionar con m&aacute;s de 25.000 autores y editoriales en junio de este a&ntilde;o. De estos libros, 2 millones ha sido cedidos por las editoriales para poner en marcha la mayor biblioteca virtual del mundo. (<a href="http://www.japantoday.com/category/technology/view/google-backed-by-almost-all-us-publishers-on-digital-bookstore" target="_blank">ver noticia completa en ingl&eacute;s</a>)&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=40</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/en-usa-las-editoriales-van-con-google.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Internet ocupa el móvil de forma espectacular</title>
			<link>http://www.imaginanet.com/blog/internet-ocupa-el-movil-de-forma-espectacular.html</link>
			<guid>http://www.imaginanet.com/blog/internet-ocupa-el-movil-de-forma-espectacular.html</guid>
			<comments>http://www.imaginanet.com/blog/internet-ocupa-el-movil-de-forma-espectacular.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Tue, 11 May 2010 11:08:18 +0100</pubDate>
					<category><![CDATA[Google Apps]]></category>
					<category><![CDATA[Google]]></category>
					<category><![CDATA[Buscadores]]></category>
					<category><![CDATA[Web 2.0]]></category>
					<description><![CDATA[Sin darnos cuenta, hemos llegado a una situaci&oacute;n en que los proveedores de contenidos y aplicaciones web como son Google, FaceBook, Apple, Skype, Twitter, ..., tienen una cuota de poder alucinante en un sector con ingresos muy atractivos y m&aacute;rgenes de beneficio bastante amplios.Esta situaci&oacute;n est&aacute;...]]></description>
			<content:encoded><![CDATA[>Sin darnos cuenta, hemos llegado a una situaci&oacute;n en que los proveedores de contenidos y aplicaciones web como son Google, FaceBook, Apple, Skype, Twitter, ..., tienen una cuota de poder alucinante en un sector con ingresos muy atractivos y m&aacute;rgenes de beneficio bastante amplios.<br /><br />Esta situaci&oacute;n est&aacute; poniendo nerviosas a las compa&ntilde;&iacute;as de telecomunicaciones, que sin darse cuenta, han perdido en control total del sector que ten&iacute;an, ya que el negocio se basa m&aacute;s en las herramientas que estos proveedores de <a title="Aplicaciones web 2.0" href="/programacion-web/aplicaciones-web.html">aplicaciones web</a> proporcionan que en la mera gesti&oacute;n del tr&aacute;fico de voz y datos.<br /><br />Aunque ya han asumido que la comunicaci&oacute;n con voz no es su principal objetivo (nadie se ha opuesto a Skype, cuya aplicaci&oacute;n de comunicaci&oacute;n por voz la usan m&aacute;s de 500 millones de usuarios en todo el mundo), parece ser que esto no va a pasar con la publicidad, que tras el &eacute;xito conseguido por Google, todos quieren formar parte del negocio.<br /><br />La batalla de verdad s&oacute;lo acaba de empezar, veremos que posiciones toma cada uno de los participantes.&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=39</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/internet-ocupa-el-movil-de-forma-espectacular.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Android vs iPhone. En USA las ventas de Android superan a las de iPhone.</title>
			<link>http://www.imaginanet.com/blog/android-vs-iphone-en-usa-las-ventas-de-android-superan-a-las-de-iphone.html</link>
			<guid>http://www.imaginanet.com/blog/android-vs-iphone-en-usa-las-ventas-de-android-superan-a-las-de-iphone.html</guid>
			<comments>http://www.imaginanet.com/blog/android-vs-iphone-en-usa-las-ventas-de-android-superan-a-las-de-iphone.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Tue, 11 May 2010 10:55:55 +0100</pubDate>
					<category><![CDATA[Google Apps]]></category>
					<category><![CDATA[Google]]></category>
					<category><![CDATA[Buscadores]]></category>
					<category><![CDATA[Web 2.0]]></category>
					<description><![CDATA[Mientras Nokia sigue manteniendo el primer puesto a nivel mundial en lo que a ventas de tel&eacute;fonos m&oacute;viles se refiere.El sistema operativo Android, de Google, acaba de ocupar la segunda plaza de ventas en Estados Unidos, puesto que ocupaba el iPhone de Apple (ver noticia). As&iacute;, tenemos en primer puesto a...]]></description>
			<content:encoded><![CDATA[>Mientras Nokia sigue manteniendo el primer puesto a nivel mundial en lo que a ventas de tel&eacute;fonos m&oacute;viles se refiere.<br /><br />El sistema operativo Android, de Google, acaba de ocupar la segunda plaza de ventas en Estados Unidos, puesto que ocupaba el iPhone de Apple (<a title="Ver noticia" href="http://www.npd.com/press/releases/press_100510.html" target="_blank">ver noticia</a>). As&iacute;, tenemos en primer puesto a BlackBerry (36%), le sigue Android (28%) y en tercera posici&oacute;n est&aacute; iPhone (21%), seg&uacute;n la noticia, este impulso en ventas se ha debido a las campa&ntilde;as promocionales que han llevado a cabo dos empresas de telefon&iacute;a m&oacute;vil, por otro lado, hay que tener en cuenta que en USA s&oacute;lo una operadora (ATT) vende el iPhone en exclusiva.<br /><br />Seg&uacute;n Apple, desde el lanzamiento del iPhone en 2007 se han vendido 51 millones de tel&eacute;fonos y en el Application Store est&aacute;n disponibles m&aacute;s de 200.000 aplicaciones.&nbsp;<br /><br />Distintos informes de ventas de tel&eacute;fonos de &uacute;ltima generaci&oacute;n dan el liderazgo a Nokia, la segunda plaza es para RIM (BlackBerry), el tercer puesto es para Apple y el cuarto lo ocupa Android.&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=38</wfw:commentRss>
			<slash:comments>1</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/android-vs-iphone-en-usa-las-ventas-de-android-superan-a-las-de-iphone.html</feedburner:origLink>
		</item>
				
		<item>
			<title>La alternativa de Apple a Flash</title>
			<link>http://www.imaginanet.com/blog/la-alternativa-de-apple-a-flash.html</link>
			<guid>http://www.imaginanet.com/blog/la-alternativa-de-apple-a-flash.html</guid>
			<comments>http://www.imaginanet.com/blog/la-alternativa-de-apple-a-flash.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 10 May 2010 15:03:36 +0100</pubDate>
					<category><![CDATA[HTML5]]></category>
					<category><![CDATA[Flash]]></category>
					<category><![CDATA[Web 2.0]]></category>
					<category><![CDATA[JavaScript]]></category>
					<description><![CDATA[Por todos es conocida la disputa entre Apple y Adobe en cuanto a Adobe Flash.Hoy nos hemos enterado (ver noticia en ingl&eacute;s) de que Apple est&aacute; trabajando en el desarrollo de un framework basado en est&aacute;ndares web y que ser&aacute; la alternativa a Adobe Flash y Microsoft Silverlight. Lo m&aacute;s atractivo de...]]></description>
			<content:encoded><![CDATA[>Por todos es conocida la disputa entre Apple y Adobe en cuanto a Adobe Flash.<br /><br />Hoy nos hemos enterado (<a href="http://news.cnet.com/8301-13579_3-20004509-37.html" target="_blank">ver noticia en ingl&eacute;s</a>) de que Apple est&aacute; trabajando en el desarrollo de un framework basado en est&aacute;ndares web y que ser&aacute; la alternativa a Adobe Flash y Microsoft Silverlight. Lo m&aacute;s atractivo de todo es que se ejecutar&aacute; de forma nativa en los navegadores, con lo que no necesitar&aacute; de plugin adicional. El nombre que le han dado es Apple Gianduia.<br /><br />Podemos resumirlo como una adaptaci&oacute;n de Cocoa, CoreData y WebObjects pero en los navegadores y estar&aacute; escrito en JavaScript. Seg&uacute;n parece ser, Apple ha utilizado Gianduia ya en el programa de reservas inclu&iacute;do en iPhone y en varias aplicaciones de tiendas virtuales online.<br /><br />Parece que Apple contra-ataca a Flash con Gianduia.<br /><br />Un nuevo punto a tener en cuenta por <a title="Imaginanet, empresa de dise&ntilde;o web profesional" href="/diseno-web.html">empresas de dise&ntilde;o web</a> y que habr&aacute; que seguir con atenci&oacute;n.]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=34</wfw:commentRss>
			<slash:comments>2</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/la-alternativa-de-apple-a-flash.html</feedburner:origLink>
		</item>
				
		<item>
			<title>La compañía japonesa NEC anuncia una tecnología con la que encontrará vídeos piratas en pocos segundos</title>
			<link>http://www.imaginanet.com/blog/la-compania-japonesa-nec-anuncia-una-tecnologia-con-la-que-encontrara-videos-piratas-en-pocos-segundos.html</link>
			<guid>http://www.imaginanet.com/blog/la-compania-japonesa-nec-anuncia-una-tecnologia-con-la-que-encontrara-videos-piratas-en-pocos-segundos.html</guid>
			<comments>http://www.imaginanet.com/blog/la-compania-japonesa-nec-anuncia-una-tecnologia-con-la-que-encontrara-videos-piratas-en-pocos-segundos.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 10 May 2010 14:53:32 +0100</pubDate>
					<category><![CDATA[HTML5]]></category>
					<category><![CDATA[Flash]]></category>
					<category><![CDATA[Web 2.0]]></category>
					<category><![CDATA[JavaScript]]></category>
					<description><![CDATA[NEC ha anunciado (ver noticia en ingl&eacute;s) que dispone de una tecnolog&iacute;a de identificaci&oacute;n que permitir&aacute; a los propietarios de derechos de autor buscar en pocos segundos v&iacute;deos que cometen infracciones de copyright y est&aacute;n subidos a internet.En la nota de prensa se anuncia como gran invento...]]></description>
			<content:encoded><![CDATA[>NEC ha anunciado (<a href="http://www.tcmagazine.com/tcm/news/misc/27909/nec-claims-find-illegal-video-uploads-seconds" target="_blank">ver noticia en ingl&eacute;s</a>) que dispone de una tecnolog&iacute;a de identificaci&oacute;n que permitir&aacute; a los propietarios de derechos de autor buscar en pocos segundos v&iacute;deos que cometen infracciones de copyright y est&aacute;n subidos a internet.<br /><br />En la nota de prensa se anuncia como gran invento para acabar con la pirater&iacute;a en internet con este sistema capaz de encontrar copias completas id&eacute;nticas o modificadas de una pel&iacute;cula, video clip, ... que est&aacute;n en internet.<br /><br />Seg&uacute;n comentan es un sistema con una precisi&oacute;n superior al 96% y que da una tasa de falsos positivos del 5 por mill&oacute;n durante las pruebas que han realizado. NEC va a presentar esta tecnolog&iacute;a la semana que viene en una conferencia de "embeded systems".<br /><br />Este sistema se podr&aacute; implantar a partir de Septiembre. Su objetivo es la identificaci&oacute;n r&aacute;pida de infracciones de copyright en la red.<br /><br />&iquest;Qu&eacute; os parece?&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=33</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/la-compania-japonesa-nec-anuncia-una-tecnologia-con-la-que-encontrara-videos-piratas-en-pocos-segundos.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Google Apps para educación llega a los 8 millones de usuarios</title>
			<link>http://www.imaginanet.com/blog/google-apps-para-educacion-llega-a-los-8-millones-de-usuarios.html</link>
			<guid>http://www.imaginanet.com/blog/google-apps-para-educacion-llega-a-los-8-millones-de-usuarios.html</guid>
			<comments>http://www.imaginanet.com/blog/google-apps-para-educacion-llega-a-los-8-millones-de-usuarios.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 10 May 2010 15:20:01 +0100</pubDate>
					<category><![CDATA[Google Apps]]></category>
					<description><![CDATA[Google ha comunicado esta noticia en su blog oficial (ver post oficial), y esta noticia nos deja ver c&oacute;mo el master de las b&uacute;squedas invierte en su suite ofim&aacute;tica y soluci&oacute;n de comunicaci&oacute;n para grupos.Si tenemos en cuenta que Google Apps cuenta con un total de 25 millones de usuarios, se ve que...]]></description>
			<content:encoded><![CDATA[>Google ha comunicado esta noticia en su blog oficial (<a href="http://googleblog.blogspot.com/2010/05/schools-are-almost-out-for-summerand-in.html" target="_blank">ver post oficial</a>), y esta noticia nos deja ver c&oacute;mo el master de las b&uacute;squedas invierte en su suite ofim&aacute;tica y soluci&oacute;n de comunicaci&oacute;n para grupos.<br /><br />Si tenemos en cuenta que Google Apps cuenta con un total de 25 millones de usuarios, se ve que casi un tercio son del sistema educativo. Una apuesta estrat&eacute;gica con estas herramientas gratuitas que integran Gmail, Gcalendar, Gtalk, &nbsp;Gdocs, Gpages, ... con la opci&oacute;n de compartirlos y editarlos conjuntamente.<br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=35</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/google-apps-para-educacion-llega-a-los-8-millones-de-usuarios.html</feedburner:origLink>
		</item>
				
		<item>
			<title>225 millones de euros para las TIC</title>
			<link>http://www.imaginanet.com/blog/225-millones-de-euros-para-las-tic.html</link>
			<guid>http://www.imaginanet.com/blog/225-millones-de-euros-para-las-tic.html</guid>
			<comments>http://www.imaginanet.com/blog/225-millones-de-euros-para-las-tic.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 10 May 2010 15:40:18 +0100</pubDate>
					<category><![CDATA[Google Apps]]></category>
					<description><![CDATA[La Secretar&iacute;a de Estado de Telecomunicaciones anunci&oacute; el inicio de la convocatoria para la concesi&oacute;n de ayudas en el marco del Plan Avanza. El Gobierno destinar&aacute; en 2010, 225 millones de euros a trav&eacute;s de cuatro l&iacute;neas: Formaci&oacute;n, Competitividad (I+D+i), Ciudadan&iacute;a Digital y...]]></description>
			<content:encoded><![CDATA[>La Secretar&iacute;a de Estado de Telecomunicaciones anunci&oacute; el inicio de la convocatoria para la concesi&oacute;n de ayudas en el marco del Plan Avanza. <br /><br />El Gobierno destinar&aacute; en 2010, 225 millones de euros a trav&eacute;s de cuatro l&iacute;neas: <br />Formaci&oacute;n, Competitividad (I+D+i), Ciudadan&iacute;a Digital y Contenidos de Inter&eacute;s Social.  <br /><br />159 millones de euros se destinar&aacute;n a prestamos y los 66 millones de euros restantes&nbsp;se entregar&aacute;n a trav&eacute;s de subvenciones. <br /><br />El Ministerio de Industria ha publicado una nota de prensa en la que dice que la convocatoria busca contribuir al &ldquo;<em>adecuado desarrollo y utilizaci&oacute;n de las tecnolog&iacute;as, aplicaciones, servicios y contenidos para la sociedad de la informaci&oacute;n</em>&rdquo;.  <br /><br />Desde el Gobierno se insiste en la necesidad de consolidar un modelo de crecimiento econ&oacute;mico sostenible que se base en &ldquo;<em>el incremento de la competitividad y la productividad, la promoci&oacute;n de la igualdad social y regional, la accesibilidad universal y la mejora del bienestar y la calidad de vida de los ciudadanos</em>&rdquo;.  <br /><br />El programa Avanza Competitividad (I+D+i) tiene el presupuesto m&aacute;s alto: 200 millones de euros (150 millones en pr&eacute;stamos y 50 millones en subvenciones). <br /><br />Las solicitudes podr&aacute;n presentarse entre el 7 de mayo y el 7 de junio.  <br /><br />Avanza Contenidos de Inter&eacute;s Social, por su parte, cuenta con un presupuesto de 12 millones de euros (9 millones pr&eacute;stamos y 3 millones en subvenciones) y recibir&aacute; solicitudes entre el 7 de mayo y el 14 de junio.  <br /><br />El presupuesto de Avanza Formaci&oacute;n llega a los 10 millones de euros en subvenciones, con un plazo de presentaci&oacute;n de solicitudes del 7 de mayo al 9 de junio. <br /> <br />Avanza Ciudadan&iacute;a Digital, por &uacute;ltimo, dispone de un presupuesto de 3 millones de euros en subvenciones y aceptar&aacute; solicitudes entre el 7 de mayo y el 1 de junio.]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=37</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/225-millones-de-euros-para-las-tic.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Google cambia el buscador</title>
			<link>http://www.imaginanet.com/blog/google-cambia-el-buscador.html</link>
			<guid>http://www.imaginanet.com/blog/google-cambia-el-buscador.html</guid>
			<comments>http://www.imaginanet.com/blog/google-cambia-el-buscador.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 10 May 2010 15:34:49 +0100</pubDate>
					<category><![CDATA[Google]]></category>
					<category><![CDATA[SEO]]></category>
					<description><![CDATA[Desde hoy se puede ver c&oacute;mo en la parte izquierda del resultado de una b&uacute;squeda nos aparece un men&uacute; nuevo con b&uacute;squeda de im&aacute;genes, libros, noticias, blogs, ... y una vez elegida una opci&oacute;n nos ofrece m&aacute;s opciones sobre el tema/opci&oacute;n elegido (tama&ntilde;os de imagen, color,...]]></description>
			<content:encoded><![CDATA[>Desde hoy se puede ver c&oacute;mo en la parte izquierda del resultado de una b&uacute;squeda nos aparece un men&uacute; nuevo con b&uacute;squeda de im&aacute;genes, libros, noticias, blogs, ... y una vez elegida una opci&oacute;n nos ofrece m&aacute;s opciones sobre el tema/opci&oacute;n elegido (tama&ntilde;os de imagen, color, ...).<br /><br />Se supone que con estos cambios Google pretende ganar en <a title="Dise&ntilde;o web y usabilidad" href="/diseno-web/diseno-web-y-usabilidad.html">usabilidad</a> y ahorrarse p&aacute;ginas vistas de los usuarios. En Google dicen en que el ahorro de tiempo para el usuario ser&aacute; muy grande, ya que podr&aacute; ir a lo que busca de forma directa. El usuario tiene m&aacute;s f&aacute;cilmente en pantalla lo que busca.<br /><br />Adem&aacute;s, han aplicado unas peque&ntilde;as variaciones est&eacute;ticas al buscador como eliminar subrayado de enlaces, degradados, etc.&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=36</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/google-cambia-el-buscador.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Las 6 razones de Apple para no utilizar Flash</title>
			<link>http://www.imaginanet.com/blog/las-6-razones-de-apple-para-no-utilizar-flash.html</link>
			<guid>http://www.imaginanet.com/blog/las-6-razones-de-apple-para-no-utilizar-flash.html</guid>
			<comments>http://www.imaginanet.com/blog/las-6-razones-de-apple-para-no-utilizar-flash.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 10 May 2010 12:12:59 +0100</pubDate>
					<category><![CDATA[HTML5]]></category>
					<category><![CDATA[Accesibilidad]]></category>
					<category><![CDATA[Flash]]></category>
					<category><![CDATA[Web 2.0]]></category>
					<description><![CDATA[Steve Jobs, m&aacute;ximo responsable de Apple ha criticado abiertamente a Adobe en esta carta. En la carta se defienden los est&aacute;ndares abiertos para web, como HTML5&nbsp;.Los seis motivos por los que Flash no funciona en sus dispositivos iPhone, iPod e iPad son:- Flash es de la era de los ratones y no de las pantallas...]]></description>
			<content:encoded><![CDATA[>Steve Jobs, m&aacute;ximo responsable de Apple ha criticado abiertamente a Adobe en <a title="Ver carta. En ingl&eacute;s." href="http://www.apple.com/hotnews/thoughts-on-flash/" target="_blank">esta carta</a>. En la carta se defienden los est&aacute;ndares abiertos para web, como HTML5&nbsp;.<br /><br />Los seis motivos por los que Flash no funciona en sus dispositivos iPhone, iPod e iPad son:<br />- Flash es de la era de los ratones y no de las pantallas t&aacute;ctiles.<br />- Flash no es abierto como lo son HTML, CSS y JavaScript<br />- No es seguro y tampoco es estable.<br />- Gasta m&aacute;s bater&iacute;a en la descodificaci&oacute;n que en el caso de H.264<br />- Flash es multiplataforma y es necesario estar pendientes de cuando Adobe proporciona herramientas para desarrolladores.<br /><br />En definitiva, se aconseja utilizar HTML 5.<br /><br />Imaginanet es una <a title="Agencia web, marketing online y programaci&oacute;n web." href="/">agencia web</a> que desarrolla <a title="Desarrollo y consultor&iacute;a de aplicaciones web" href="/programacion-web/aplicaciones-web.html">aplicaciones web</a> 100% compatibles con todos los dispositivos m&oacute;viles.&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=32</wfw:commentRss>
			<slash:comments>3</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/las-6-razones-de-apple-para-no-utilizar-flash.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Optimización de código PHP</title>
			<link>http://www.imaginanet.com/blog/optimizacion-de-codigo-php.html</link>
			<guid>http://www.imaginanet.com/blog/optimizacion-de-codigo-php.html</guid>
			<comments>http://www.imaginanet.com/blog/optimizacion-de-codigo-php.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Thu, 22 Apr 2010 15:59:48 +0100</pubDate>
					<category><![CDATA[PHP]]></category>
					<description><![CDATA[Cuando tenemos planeado hacer una aplicaci&oacute;n web que va a hacer un trabajo intensivo de operaciones, base de datos, ficheros, etc. (por ejemplo p&aacute;gina corporativa o de comercio electr&oacute;nico) debemos plantearnos la velocidad final que tendr&aacute; con una alta carga de visitas diarias.
Por ello, vamos a...]]></description>
			<content:encoded><![CDATA[><p>Cuando tenemos planeado hacer una aplicaci&oacute;n web que va a hacer un trabajo intensivo de operaciones, base de datos, ficheros, etc. (por ejemplo <a title="Programaci&oacute;n y dise&ntilde;o de p&aacute;ginas web corporativas y de comercio electr&oacute;nico" href="http://www.imaginanet.com/programacion-web.html">p&aacute;gina corporativa o de comercio electr&oacute;nico</a>) debemos plantearnos la velocidad final que tendr&aacute; con una alta carga de visitas diarias.</p>
<p>Por ello, vamos a explicar algunos trucos y consejos con ejemplos para poder escribir nuestro c&oacute;digo PHP optimizado y por tanto nuestras aplicaciones corran m&aacute;s r&aacute;pido.</p>
<h3><span style="text-decoration: underline;">Cadenas de texto</span></h3>
<p><strong>Usar echo en vez de print</strong></p>
<p>Es m&aacute;s r&aacute;pido hacer uso de la funci&oacute;n echo que de la funci&oacute;n print</p>
<pre class="code php">echo &ldquo;Hola&rdquo;; // M&aacute;s r&aacute;pido
print &ldquo;Hola&rdquo;;
</pre>
<p><strong>Evitar concatenar texto innecesariamente y utilizar m&uacute;ltiples echos</strong></p>
<p>Es mejor realizar dos salidas de texto con dos echos diferentes que concatenar texto y despu&eacute;s producir la salida.</p>
<pre class="code php">echo &ldquo;Bienvenido&rdquo;; echo $usuario; // M&aacute;s r&aacute;pido
echo &ldquo;Bienvenido&rdquo;.$usuario;
</pre>
<p><strong>Saber si una cadena de texto est&aacute; vac&iacute;a</strong></p>
<p>Es m&aacute;s r&aacute;pido saber si una variable est&aacute; vac&iacute;a con empty que saber si la longitud en n&uacute;mero de caracteres es cero con strlen.</p>
<pre class="code php">if (empty($cadena)) echo &ldquo;vac&iacute;a&rdquo;; // M&aacute;s r&aacute;pida
if (strlen($s) == 0) echo &ldquo;vac&iacute;a&rdquo;;
</pre>
<p><strong>Substituir texto</strong></p>
<p>La manera m&aacute;s r&aacute;pida para substituir texto es con strtr y no con str_replace o preg_replace.</p>
<pre class="code php">$salida = strtr("abd","d","c"); // M&aacute;s r&aacute;pida
$salida = str_replace("d","c","abd");
$salida = preg_replace("/d/","c","abd");
</pre>
<p><strong>Saber si una cadena est&aacute; contenida en otra</strong></p>
<p>La funci&oacute;n strpos es m&aacute;s r&aacute;pida y ocupa menos memoria que strstr</p>
<pre class="code php">if(strpos("Hola","o")!==false) echo "s&iacute;"; // M&aacute;s r&aacute;pida
$esta_contenida = strstr("Hola","o");
if(!empty($esta_contenida)) echo "s&iacute;";
</pre>
<h3><span style="text-decoration: underline;">Variables y arrays</span></h3>
<p><strong>Uso de variables locales</strong></p>
<p>Es m&aacute;s r&aacute;pido y eficiente en memoria trabajar con variables locales dentro de una funci&oacute;n que con una variable de instancia de un objeto, declarada como global o sin definir:</p>
<pre class="code php">class objeto {
&nbsp;&nbsp;&nbsp;private $c;
&nbsp;&nbsp;&nbsp;public function __Construct() {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;c=0;
&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;public function prueba() {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Inicializaci&oacute;n
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global $a;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$b = 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Incremento
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$a++;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$b++;	// M&aacute;s r&aacute;pida
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;c++;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$d++;
&nbsp;&nbsp;&nbsp;}
}
</pre>
<p><strong>Coste de memoria</strong></p>
<p>Deberemos declarar variables que vayamos a usar. Si vamos a usar una variable con valores temporales podemos llamarla $auxiliar y as&iacute; no declarar muchas variables diferentes que s&oacute;lo usamos una vez.</p>
<p>Las variables que ocupen mucho espacio en memoria, por ejemplo un array muy grande, deberemos borrarlas cuando no se vayan usar con la funci&oacute;n unset.</p>
<p><strong>Calcular la longitud de un array antes de recorrerlo</strong></p>
<p>Es m&aacute;s r&aacute;pido recorrer un array de la siguiente forma</p>
<pre class="code php">$icount = count($lista);
for($i=0;$i&lt;$icount;$i++) {
&nbsp;&nbsp;&nbsp;...
}
</pre>
<p>que de &eacute;sta</p>
<pre class="code php">for($i=0;$i&lt;count($lista);$i++) {
&nbsp;&nbsp;&nbsp;...
}
</pre>
<p>ya que el c&aacute;lculo de count se realiza tantas veces como posiciones tenga el array.</p>
<p><strong>Acceder correctamente a un &iacute;ndice no n&uacute;merico</strong></p>
<p>Debemos acceder a los &iacute;ndices no num&eacute;ricos de un array especific&aacute;ndolo con comillas</p>
<pre class="code php">echo $lista[0]['nombre']; // M&aacute;s r&aacute;pido
echo $lista[0][nombre];
</pre>
<h3><span style="text-decoration: underline;">Funciones y objetos</span></h3>
<p><strong>Hacer uso de las funciones predefinidas en PHP</strong></p>
<p>Las funciones incluidas en PHP siempre ser&aacute;n mucho m&aacute;s r&aacute;pidas que las que podamos hacer nosotros</p>
<p><strong>Uso de include y require</strong></p>
<p>Es m&aacute;s r&aacute;pido hacer uso de include o require que include_once o require_once.</p>
<p><strong>Funciones declaradas en objetos hijos son m&aacute;s r&aacute;pidos que los heredados</strong></p>
<p>Una funci&oacute;n declarada en un objeto hijo es m&aacute;s r&aacute;pida que una funci&oacute;n heredada de un objeto padre.</p>
<h3><span style="text-decoration: underline;">Bases de datos</span></h3>
<p><strong>Ordenar los resultados de m&uacute;ltiples consultas</strong></p>
<p>Cuando tenemos que hacer m&uacute;ltiples consultas SQL que terminen siendo pesadas, es mejor realizar el procesamiento de ordenaci&oacute;n mediante la funci&oacute;n <a href="http://es.php.net/manual/en/function.usort.php">usort</a> o similares que mediante SQL. Un ejemplo acerca de esto pod&eacute;is leer en el <a href="http://highscalability.com/blog/2010/3/23/digg-4000-performance-increase-by-sorting-in-php-rather-than.html">siguiente art&iacute;culo</a> de como Digg consigui&oacute; optimizar su web notablemente mediante estos procedimientos.</p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=31</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/optimizacion-de-codigo-php.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Palo como solución de Business Intelligence: primeros pasos creando informes</title>
			<link>http://www.imaginanet.com/blog/palo-como-solucion-de-business-intelligence-primeros-pasos-creando-informes.html</link>
			<guid>http://www.imaginanet.com/blog/palo-como-solucion-de-business-intelligence-primeros-pasos-creando-informes.html</guid>
			<comments>http://www.imaginanet.com/blog/palo-como-solucion-de-business-intelligence-primeros-pasos-creando-informes.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed, 14 Apr 2010 11:06:41 +0100</pubDate>
					<category><![CDATA[Business Intelligence]]></category>
					<category><![CDATA[Comercio electrónico]]></category>
					<description><![CDATA[El t&eacute;rmino Business Intelligence (BI) o Inteligencia Empresarial es el uso de datos de esa propia empresa para conocer en mayor profundidad los hechos que se producen en los movimientos de clientes, ventas, gastos, etc. de esa manera podremos conocer fuentes de beneficios y gastos en base a los informes que de manera...]]></description>
			<content:encoded><![CDATA[>El t&eacute;rmino <em>Business Intelligence</em> (BI) o Inteligencia Empresarial es el uso de datos de esa propia empresa para conocer en mayor profundidad los hechos que se producen en los movimientos de clientes, ventas, gastos, etc. de esa manera podremos conocer fuentes de beneficios y gastos en base a los informes que de manera sencilla permite generar.
<h3>Jedox Palo</h3>
<p>Palo es un herramienta OLAP (<em><strong>O</strong>nline <strong>A</strong>nalytical <strong>P</strong>rocessing</em>) de BI, que nos permite crear almacenar datos y generar informes en <span style="text-decoration: underline;">hojas de c&aacute;lculo</span> (via Microsoft Excel / OpenOffice) <span style="text-decoration: underline;">o en el navegador Web</span>. Esta herramienta est&aacute; creada por la empresa Jedox y en las aplicaciones b&aacute;sicas son software libre, por lo que nos permite el uso b&aacute;sico a un costo cero, y adem&aacute;s posee de herramientas m&aacute;s avanzadas de pago.</p>
<h3>Instalando lo necesario</h3>
<p>Lo primero ser&aacute; descargarnos de la <a title="P&aacute;gina oficial de Palo de Jedox" href="http://www.jedox.com" target="_blank">p&aacute;gina oficial de Palo</a> el cliente (Palo for Excel o Palo for Open Office) y el el servidor (Palo Suite) e instalarlo primero el cliente y despu&eacute;s el servidor, si no podr&iacute;a haber alg&uacute;n problema en la instalaci&oacute;n. Adem&aacute;s, debemos bajarnos el manual de uso y configuraci&oacute;n para conocer ciertas funcionalidades y configuraciones.</p>
<p>Para esta instalaci&oacute;n, vamos a suponer que la instalaci&oacute;n que hagamos el cliente y el servidor van a estar en el mismo ordenador. Si queremos que el servidor est&eacute; abierto deberemos abrir el puerto en la configuraci&oacute;n del servidor Palo.</p>
<h4>NOTA: Instalando el complemento de Palo en OpenOffice</h4>
<p>Inicialmente la instalaci&oacute;n del addin de Palo lo hice sobre Excel sin problemas en Office XP. Sin embargo not&eacute; que si quer&iacute;amos hacerlo para OpenOffice bajo Linux mostraba un error Java. Tras buscar un poco por Google encontr&eacute; la siguiente p&aacute;gina <a title="Instalando Palo Addin en OpenOffice " href="http://software.krimnet.com/guide/guide-install-palooca-ubuntu-904-netbook-remix.htm" target="_blank">http://software.krimnet.com/guide/guide-install-palooca-ubuntu-904-netbook-remix.htm</a> en la que que explica los paquetes necesarios para instalarlo bajo Debian/Ubuntu.</p>
<h3>Primeros pasos creando informes con Excel o  OpenOffice</h3>
<p>Ahora arrancaremos nuestra hoja de c&aacute;lculo, si es desde Excel deberemos hacerlo haciendo doble click en el icono Palo Excel-Addin del escritorio, y veremos que tenemos una nueva opci&oacute;n que es la pesta&ntilde;a Palo.</p>
<p>Para crear un informe seleccionaremos la opci&oacute;n Pegar Vista. Las opciones b&aacute;sicas que se muestran son las siguientes:</p>
<ul>
<li><span style="text-decoration: underline;">Servidor / Base de datos:</span> nuestro ordenador se puede conectar a varios servidores que contengan diferentes bases de datos. En principio trabajaremos con la base de datos Demo.</li>
<li><span style="text-decoration: underline;">&Aacute;rea de hoja:</span> son las dimensiones de las que disponemos. Podemos definir una dimensi&oacute;n como un dato medible, como por ejemplo: productos, ventas, a&ntilde;os, clientes, etc.</li>
<li><span style="text-decoration: underline;">T&iacute;tulo de columna:</span> dimensi&oacute;n/es que ir&aacute;n en el eje X, en nuestro caso arrastraremos hasta aqu&iacute; la dimensi&oacute;n Years.</li>
<li><span style="text-decoration: underline;">T&iacute;tulo de rengl&oacute;n:</span> dimensi&oacute;n/es que ir&aacute;n en el eje Y, arrastraremos la dimensi&oacute;n Products.</li>
</ul>
<p>Tras seleccionarlo pulsaremos el bot&oacute;n insertar y el informe quedar&aacute; creado.</p>
<p><img title="Esquema de la vista de Palo" src="http://www.imaginanet.com/blog_files/palo/palo_esquema.png" alt="Esquema de la vista de Palo" /></p>
<p>Podemos ver que la vista consisten en dos zonas: la zona superior contiene las dimensiones no escogidas y la inferior contiene las dimensiones escogidas que queremos ver en detalle.</p>
<p>Si hacemos doble click sobre las celdas azules de la zona inferior podemos ir desplegando las secciones de a&ntilde;os o productos, subdividi&eacute;ndose en otras secciones hasta llegar a un elemento final. Mientras, en las celdas amarillas se muestra el valor calculado.</p>
<p>Podemos seleccionar las dimensiones de la zona superior para modificar el informe. Por ejemplo podemos hacer doble click sobre <em>Europe</em> y elegir <em>Spain</em>, todos los datos de la zona inferior que ahora salen son los pertenecientes a Espa&ntilde;a, pudiendo ver en detalle los valores para los productos seg&uacute;n a&ntilde;os.</p>
<p>Por &uacute;ltimo, tras tener el informe que deseamos, si queremos exportarlo y visualizarlo en un ordenador sin que tenga Palo instalado, podemos pulsar la opci&oacute;n <em>Guardar como Instant&aacute;nea</em>, pero este informe no ser&aacute; din&aacute;mico y s&oacute;lo veremos los datos visualizados al generarlo.</p>
<h3>Fuentes y m&aacute;s informaci&oacute;n</h3>
<ul>
<li><span style="text-decoration: underline;">Wikipedia</span>, Business Intelligence: <a title="Wikipedia Business Intelligence" href="http://es.wikipedia.org/wiki/Business_intelligence" target="_blank">http://es.wikipedia.org/wiki/Business_intelligence</a></li>
<li><span style="text-decoration: underline;">Wikipedia</span>, OLAP: <a title="Wikipedia OLAP" href="http://es.wikipedia.org/wiki/OLAP" target="_blank">http://es.wikipedia.org/wiki/OLAP</a></li>
<li><span style="text-decoration: underline;">Jedox</span>, Palo: <a title="Jedox Palo" href="http://www.jedox.com/" target="_blank">http://www.jedox.com/</a></li>
</ul>
<p>&nbsp;</p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=30</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/palo-como-solucion-de-business-intelligence-primeros-pasos-creando-informes.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Seguridad en PHP básica: escribiendo aplicaciones web seguras</title>
			<link>http://www.imaginanet.com/blog/seguridad-en-php-basica-escribiendo-aplicaciones-web-seguras.html</link>
			<guid>http://www.imaginanet.com/blog/seguridad-en-php-basica-escribiendo-aplicaciones-web-seguras.html</guid>
			<comments>http://www.imaginanet.com/blog/seguridad-en-php-basica-escribiendo-aplicaciones-web-seguras.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed, 31 Mar 2010 09:29:59 +0100</pubDate>
					<category><![CDATA[PHP]]></category>
					<description><![CDATA[A continuaci&oacute;n vamos a explicar algunos conceptos b&aacute;sicos de brechas de seguridad m&aacute;s comunes y como solucionarlos mediante PHP permitiendo escribir aplicaciones web un poco m&aacute;s seguras.
Protecci&oacute;n contra la inyecci&oacute;n de c&oacute;digo SQL
Es muy com&uacute;n trabajar contra una base de...]]></description>
			<content:encoded><![CDATA[><p>A continuaci&oacute;n vamos a explicar algunos conceptos b&aacute;sicos de brechas de seguridad m&aacute;s comunes y como solucionarlos mediante PHP permitiendo escribir <a title="Desarrollo de aplicaciones web a medida" href="/programacion-web/aplicaciones-web.html">aplicaciones web</a> un poco m&aacute;s seguras.</p>
<h3>Protecci&oacute;n contra la inyecci&oacute;n de c&oacute;digo SQL</h3>
<p>Es muy com&uacute;n trabajar contra una base de datos (MySQL, PostgreSQL, Oracle, etc.) y estas consultas dependen de par&aacute;metros llegados desde GET o POST, por lo que permitimos al usuario de cada web que en cierta manera modifique las consultas SQL de nuestra web.</p>
<p>Esto podr&iacute;a provocar que un usuario que construya una consulta SQL malintencionada pudiera obtener resultados indeseados, como poder hacer un login en una zona restringida de nuestra web sin conocer ning&uacute;n usuario / contrase&ntilde;a.</p>
<p>Supongamos la siguiente situaci&oacute;n: tenemos un <strong>nombre de usuario pruebas</strong> y una <strong>contrase&ntilde;a clave_pruebas</strong> guardados en base de datos. Para realizar la identificador obtenemos los par&aacute;metros por POST mediante las variables $_POST['usuario']  y $_POST['clave']. Tras ello realizamos la siguiente consulta SQL:</p>
<pre class="code php">mysql_query('select id from usuariosWeb where usuario = '".$_POST['usuario']."' and password = '".$_POST['clave']."'');</pre>
<p>Si existe un usuario con ese nombre y usuario, es que la identificaci&oacute;n es correcta y por tanto debemos hacer el login. Pero sin embargo, si construy&eacute;semos el siguiente par&aacute;metro</p>
<pre class="code php">$_POST['clave'] ="m' or 1='1"</pre>
<p>podemos observar que nos devuelve un valor v&aacute;lido para identificarse conociendo s&oacute;lo el nombre de usuario.</p>
<p>Para solucionarlo, tenemos diversos m&eacute;todos pero lo m&aacute;s c&oacute;modo es substituir las comillas simples y dobles de todos los par&aacute;metros par&aacute;metros POST mediante el siguiente c&oacute;digo:</p>
<pre class="code php">foreach($_POST as $key =&gt; $value) {
	$_POST[$key] = str_replace("'","",$value);
	$_POST[$key] = str_replace('"','',$value);
}
</pre>
<h3><strong>Guardar contrase&ntilde;as, n&uacute;meros de tarjeta de cr&eacute;dito, direcci&oacute;n de correo, etc. de forma segura con MD5 &oacute; SHA1</strong></h3>
<p>Para guardar las contrase&ntilde;as de los usuarios en las bases de datos debemos guardarlas de manera que no puedan ser visibles a simple vista ya que si alguna persona malintencionada consiguiera acceder a la base de datos, adem&aacute;s de conseguir el control de nuestra web, adem&aacute;s tendr&aacute; acceso a informaci&oacute;n sensible de los usuarios que nos visitan.</p>
<p>Para ello podemos dificultarlo mediante los res&uacute;menes <em>hash</em> MD5 o SHA-1, que aunque se tratan de  algoritmos <em>crackeados</em>, por lo menos no mostraremos como texto plano esta informaci&oacute;n.</p>
<p>Ejemplo:</p>
<pre class="code php">$a = "clave_pruebas";

echo "clave original: ".$a." ";

$b = md5($a);

echo "Hash MD5 de la clave original: ".$b." ";

$c = sha1($a);

echo "Hash SHA-1 de la clave original: ".$c." ";
</pre>
<p>Como podemos ver, con ello conseguimos ocultar m&iacute;nimamente la contrase&ntilde;a de cada usuario. Cuando un usuario se identifique con su contrase&ntilde;a, realizaremos el c&aacute;lculo del <em>hash</em> de su contrase&ntilde;a y compararemos contra la base de datos, no el texto plano de la contrase&ntilde;a, si no del <em>hash</em>.</p>
<h3>Uso de variables de sesi&oacute;n y no de <em>cookies</em></h3>
<p>Normalmente, alguna zona de nuestra web necesite acceso mediante usuario y contrase&ntilde;a. Para que el usuario no tenga que introducirlas repetidamente podemos guardarla mediante <em>cookies</em> pero es una pr&aacute;ctica muy insegura ya que si lo hici&eacute;ramos, esta informaci&oacute;n es transmitida mediante la red en texto plano y podr&iacute;a ser le&iacute;da por cualquier persona que realice un <em>sniffing</em> de red o que lea las <em>cookies</em> guardadas en nuestro ordenador mediante un virus o troyano.</p>
<p>Por ello lo mejor es hacer uso de las variables de sesi&oacute;n. Estas variables se guardan en el servidor por lo que en cualquier caso, la informaci&oacute;n transmitida s&oacute;lo es sensible la primera vez que se env&iacute;a y no las sucesivas veces (por tanto esto ser&iacute;a evitable haciendo uso del protocolo HTTPS en vez de HTTP).</p>
<p>Como ejemplo del usuario de variables de sesi&oacute;n, haremos uso de dos archivos. En el primero creamos una variable de sesi&oacute;n:</p>
<pre class="code php">session_start();
$_SESSION['clave'] = "clave_pruebas";
</pre>
<p>y en el segundo mostramos el valor en pantalla.</p>
<pre class="code php">session_start();
echo $_SESSION['clave'];
</pre>
<h3>Suplantaci&oacute;n de sesiones (<em>Session hijacking</em> o <em>Man in the middle</em>)</h3>
<p>Del uso de variables de sesi&oacute;n se deriva otra posible brecha de seguridad que es una persona malintencionada intente suplantar el cliente de cara al servidor. Cuando iniciamos una sesi&oacute;n, creamos una <em>cookie</em> con un identificador &uacute;nico para esa sesi&oacute;n. Si una persona malintencionada interceptase ese identificador &uacute;nico y mandase esa <em>cookie</em> al servidor, podr&iacute;a suplantar nuestra identidad y tener acceso a nuestras zonas restringidas de la web.</p>
<p>Lo soluci&oacute;n ideal ser&iacute;a el uso del protocolo HTTPS que encriptar&iacute;a toda nuestra conexi&oacute;n, pero si esto no es posible,  podemos crear una serie de comprobaciones en las que intentemos asegurarnos de la real identidad de cada usuario.</p>
<p>Para ello podemos guardar una serie de variables de sesi&oacute;n de los datos que el usuario nos proporciona en cada visita, como son la direcci&oacute;n IP o la informaci&oacute;n de su navegador, etc. Si estos cambian significar&iacute;a que es un intento de <em>session hijacking</em> y por tanto es un usuario que realiza un ataque. En el siguiente ejemplo tenemos dos archivos, en el que en el primer archivo realizamos un login satisfactorio y guardamos los datos iniciales de direcci&oacute;n IP y tipo del navegador con el que lo hemos hecho:</p>
<pre class="code php">session_start();
$_SESSION['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['HTTP_USER_AGENT'] = $_SERVER['HTTP_USER_AGENT'];
</pre>
<p>En pantallas posteriores, comprobaremos si en cada pantalla los datos actuales de direcci&oacute;n IP y datos del navegador se corresponden con los que se realiz&oacute; el login como usuario en la web:</p>
<pre class="code php">session_start();
if($_SESSION['REMOTE_ADDR'] != $_SERVER['REMOTE_ADDR'] || $_SESSION['HTTP_USER_AGENT'] != $_SERVER['HTTP_USER_AGENT']) {
	exit();
}
</pre>
<h3>Par&aacute;metros GET/POST explotables</h3>
<p>Para finalizar, si hacemos uso de par&aacute;metros GET y POST deberemos comprobar siempre que se correspondan con el usuario actual o si tiene permisos.</p>
<p>Por ejemplo, si tenemos un archivo que edita productos llamado editarProducto.php y recibe el par&aacute;metro GET idproducto, que se corresponde con el identificador &uacute;nico del producto a editar y llamamos al archivo de la siguiente manera:</p>
<pre class="code">http://www.miweb.com/editarProducto.php?idproducto=15</pre>
<p>deberemos comprobar en cualquier caso que en primer lugar seamos un usuario registrado y <em>logueado</em> y despu&eacute;s que el producto de identificador &uacute;nico 15 corresponde a uno de los productos del usuario <em>logueado</em>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=29</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/seguridad-en-php-basica-escribiendo-aplicaciones-web-seguras.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Un editor de textos web: TinyMCE</title>
			<link>http://www.imaginanet.com/blog/un-editor-de-textos-web-tinymce.html</link>
			<guid>http://www.imaginanet.com/blog/un-editor-de-textos-web-tinymce.html</guid>
			<comments>http://www.imaginanet.com/blog/un-editor-de-textos-web-tinymce.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Tue, 23 Mar 2010 12:00:45 +0100</pubDate>
					<category><![CDATA[JavaScript]]></category>
					<description><![CDATA[TinyMCE es una aplicaci&oacute;n escrita en Javascript que nos permite crear un editor de textos en nuestra web con una gran variedad de personalizaci&oacute;n y con caracter&iacute;sticas (que lo hacen interesante para usarlo en sistemas de gesti&oacute;n de contenido web), como pueden ser: 

Open Source
Ligero de peso
Ampliable...]]></description>
			<content:encoded><![CDATA[>TinyMCE es una aplicaci&oacute;n escrita en Javascript que nos permite crear un editor de textos en nuestra web con una gran variedad de personalizaci&oacute;n y con caracter&iacute;sticas (que lo hacen interesante para usarlo en <a title="imaginaCMS, sistema de gesti&oacute;n de contenido web a medida" href="/programacion-web/gestor-de-contenidos-web.html">sistemas de gesti&oacute;n de contenido web</a>), como pueden ser:<br /> 
<ul>
<li>Open Source</li>
<li>Ligero de peso</li>
<li>Ampliable mediante plugins</li>
<li>Usable en todos los navegadores.</li>
</ul>
En nuestro caso, vamos a configurarlo de tal manera que tenga el aspecto de un editor de textos simple cubriendo las funcionalidades b&aacute;sicas del editor.<br /><br />El primer paso ser&aacute; descargarlo de la <a title="editor de textos web" href="http://tinymce.moxiecode.com/" target="_blank">web oficial</a> y descomprimirlo en el disco duro. Crearemos un archivo de extensi&oacute;n html en la carpeta descomprimida con el siguiente c&oacute;digo:<br />
<pre class="code">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;title&gt;Ejemplo de un editor de textos Web simple con TinyMCE&lt;/title&gt;

&lt;!-- TinyMCE --&gt;

&lt;script type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
	tinyMCE.init({
		mode : "exact",
		elements : "editor_texto",
		theme : "advanced",
		theme_advanced_buttons1:"bold,italic,underline,|,undo,redo,|,bullist,numlist",
		theme_advanced_buttons2:"",
		theme_advanced_buttons3:""

	});
&lt;/script&gt;
&lt;!-- /TinyMCE --&gt;

&lt;/head&gt;
&lt;body&gt;

&lt;h3&gt;Editor de textos Web&lt;/h3&gt;

&lt;textarea id="editor_texto" name="editor_texto" style="width: 30%;"&gt;Texto de prueba&lt;/textarea&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
Si visualizamos el archivo en cualquier navegador web, podemos observar que tenemos un editor de textos que podemos usar en nuestra p&aacute;gina web. A continuaci&oacute;n explicaremos las opciones de configuraci&oacute;n que hemos usado:<br /> 
<ul>
<li><strong>mode "exact"</strong> y <strong>elements "editor_texto"</strong>: con estas dos l&iacute;neas indicamos que queremos aplicar el editor de textos s&oacute;lo al elemento de la web de identificador editor_texto</li>
<li><strong>theme "advanced"</strong>: elegimos utilizar el tema avanzado del editor para poder seleccionar los botones concretos que queremos que aparezcan mediante <strong>theme_advanced_buttons1</strong>, <strong>theme_advanced_buttons2</strong> y <strong>theme_advanced_buttons3</strong> donde seleccionaremos dentro de las tres posibles filas de botones del editor, que botones aparecer&aacute;n. En este caso negrita, cursiva, subrayado, una separaci&oacute;n, deshacer, rehacer, una separaci&oacute;n, lista y lista numerada respectivamente.</li>
</ul>
<br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=28</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/un-editor-de-textos-web-tinymce.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Cómo utilizar PayPal para realizar compras en tu web</title>
			<link>http://www.imaginanet.com/blog/como-utilizar-paypal-para-realizar-compras-en-tu-web.html</link>
			<guid>http://www.imaginanet.com/blog/como-utilizar-paypal-para-realizar-compras-en-tu-web.html</guid>
			<comments>http://www.imaginanet.com/blog/como-utilizar-paypal-para-realizar-compras-en-tu-web.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed, 17 Feb 2010 09:32:57 +0100</pubDate>
					<category><![CDATA[Comercio electrónico]]></category>
					<description><![CDATA[Vamos a explicar c&oacute;mo llamar al API de PayPal para realizar pagos en tu p&aacute;gina web. En primer lugar deberemos crear una cuenta como desarrollador de PayPal Sandbox (https://developer.paypal.com/) que usaremos para verificar que lo hacemos de manera correcta antes de hacerlo funcionar en la tienda virtual de nuestra...]]></description>
			<content:encoded><![CDATA[><p>Vamos a explicar c&oacute;mo llamar al <strong>API de PayPal</strong> para realizar pagos en tu p&aacute;gina web. En primer lugar deberemos crear una cuenta como desarrollador de <strong>PayPal Sandbox</strong> (<a href="https://developer.paypal.com/">https://developer.paypal.com/</a>) que usaremos para verificar que lo hacemos de manera correcta antes de hacerlo funcionar en la <a title="Desarrollo de aplicaciones e-commerce a medida" href="/diseno-web/tiendas-virtuales.html">tienda virtual</a> de nuestra p&aacute;gina web.</p>
<p>Tras hacerla y meternos en nuestra cuenta de desarrollador, deberemos seleccionar la opci&oacute;n <em>Create a preconfigured buyer or seller account</em> donde rellenaremos con nuestros datos el formulario teniendo en cuenta que debe ser una cuenta de vendedor.</p>
<p>Una vez creada, entraremos a nuestro listado de cuentas de PayPal Sandbox. Estas cuentas no son cuentas reales de PayPal y s&oacute;lo funcionar&aacute;n dentro de su Sandbox. Para entrar en ella pulsaremos el bot&oacute;n de <em>Enter Sandbox Test Site</em> y podremos introducir el usuario y contrase&ntilde;a para esta cuenta de prueba. Una vez dentro podemos observar que es como si fuera una cuenta de PayPal  pero los pagos que se hagan a ella no ser&aacute;n reales.</p>
<h4>Ejemplo de pago con el API de PayPal</h4>
<p>Para realizar el pago utilizaremos un documento HTML en el que le pasaremos los par&aacute;metros que PayPal necesita (importe, c&oacute;digo de venta, etc.) y otros opcionales como los datos del usuario que compra para que le aparezcan rellenados en el formulario de pago. Un ejemplo ser&iacute;a el siguiente:</p>
<pre class="code">&lt;html&gt;

&lt;head&gt;

&lt;title&gt;Ejemplo de pago mediante la API de PayPal&lt;/title&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;form name='formTpv' method='post' action='https://www.sandbox.paypal.com/cgi-bin/webscr'&gt;

	&lt;input type='hidden' name='cmd' value='_xclick'&gt;
	&lt;input type='hidden' name='business' value='mi_cuenta_sandbox@mi_pagina.com'&gt;
	&lt;input type='hidden' name='item_name' value='Nueva compra en mi web'&gt;
	&lt;input type='hidden' name='item_number' value='VENTA-X2561'&gt;
	&lt;input type='hidden' name='amount' value='10.15'&gt;
	&lt;input type='hidden' name='page_style' value='primary'&gt;
	&lt;input type='hidden' name='no_shipping' value='1'&gt;
	&lt;input type='hidden' name='return' value='http://mi_pagina/exito.html'&gt;
	&lt;input type='hidden' name='rm' value='2'&gt;
	&lt;input type='hidden' name='cancel_return' value='http://mi_pagina/cancelada.html'&gt;
	&lt;input type='hidden' name='no_note' value='1'&gt;
	&lt;input type='hidden' name='currency_code' value='EUR'&gt;
	&lt;input type='hidden' name='cn' value='PP-BuyNowBF'&gt;
	&lt;input type='hidden' name='custom' value=''&gt;
	&lt;input type='hidden' name='first_name' value='NOMBRE'&gt;
	&lt;input type='hidden' name='last_name' value='APELLIDOS'&gt;
	&lt;input type='hidden' name='address1' value='DIRECCI&Oacute;N'&gt;
	&lt;input type='hidden' name='city' value='POBLACI&Oacute;N'&gt;
	&lt;input type='hidden' name='zip' value='C&Oacute;DIGO POSTAL'&gt;
	&lt;input type='hidden' name='night_phone_a' value=''&gt;
	&lt;input type='hidden' name='night_phone_b' value='TEL&Eacute;FONO'&gt;
	&lt;input type='hidden' name='night_phone_c' value=''&gt;
	&lt;input type='hidden' name='lc' value='es'&gt;
	&lt;input type='hidden' name='country' value='ES'&gt;
&lt;/form&gt;
&lt;script type='text/javascript'&gt;
	document.formTpv.submit();
&lt;/script&gt;

&lt;/body&gt;

&lt;/html&gt;
</pre>
<p>La direcci&oacute;n de llamada del formulario de pruebas es <span style="text-decoration: underline;">https://www.sandbox.paypal.com/cgi-bin/webscr</span> pero al pasar a ventas reales deberemos indicar <span style="text-decoration: underline;">https://www.paypal.com/cgi-bin/webscr</span></p>
<p>Como podemos ver, existente multitud de par&aacute;metros en el formulario que son f&aacute;ciles de ver cuales son su prop&oacute;sito (nombre, direcci&oacute;n, etc.). A continuaci&oacute;n detallamos los m&aacute;s importantes o que podemos tener duda de qu&eacute; son realmente:</p>
<ul>
<li><strong>business:</strong> indicaremos la cuenta de PayPal asociada al vendedor. Mientras estemos de pruebas indicaremos la cuenta de pruebas del Sandbox, pero para ventas reales deberemos indicar nuestra cuenta de vendedor.</li>
<li><strong>item_name:</strong> t&iacute;tulo que aparecer&aacute; en la pantalla de pago.</li>
<li><strong>item_number:</strong> c&oacute;digo de la venta, actuar&aacute; como identificador &uacute;nico de cada venta.</li>
<li><strong>amount:</strong> importe a pagar, donde si hay decimales no podr&aacute;n indicarse con una coma ni con m&aacute;s de dos n&uacute;meros.</li>
<li><strong>return:</strong> p&aacute;gina de vuelta a nuestra web indicando &eacute;xito en el pago.</li>
<li><strong>cancel_return:</strong> p&aacute;gina de vuelta a nuestra web indicando que no se realiz&oacute; el pago por que el usuario lo cancel&oacute;.</li>
<li><strong>currency_code:</strong> c&oacute;digo de la moneda usada en el pago. Para el caso del euro es EUR.</li>
<li><strong>lc:</strong> idioma de la pantalla de pago.</li>
<li><strong>country:</strong> c&oacute;digo ISO del pa&iacute;s del cliente.</li>
</ul>
<h3>Art&iacute;culos relacionados</h3>
<ul>
<li><a title="Pagos y transferencias masivas con PayPal" href="http://www.imaginanet.com/blog/pagos-en-serie-de-paypal.html">Pagos en serie de PayPal</a></li>
</ul>
<ul>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=27</wfw:commentRss>
			<slash:comments>9</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/como-utilizar-paypal-para-realizar-compras-en-tu-web.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Usando AJAX: Un simple ejemplo con PHP y jQuery.</title>
			<link>http://www.imaginanet.com/blog/usando-ajax-un-simple-ejemplo-con-php-y-jquery.html</link>
			<guid>http://www.imaginanet.com/blog/usando-ajax-un-simple-ejemplo-con-php-y-jquery.html</guid>
			<comments>http://www.imaginanet.com/blog/usando-ajax-un-simple-ejemplo-con-php-y-jquery.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed, 10 Feb 2010 10:48:36 +0100</pubDate>
					<category><![CDATA[jQuery]]></category>
					<category><![CDATA[Ajax]]></category>
					<description><![CDATA[Descrito de una manera muy resumida, AJAX es una tecnolog&iacute;a que nos permite realizar acciones en una p&aacute;gina web que necesiten respuesta del servidor sin recargarla. Con ello conseguimos que nuestra web sea din&aacute;mica y por tanto obtener un dise&ntilde;o m&aacute;s atractivo. Algunos ejemplos de lo que podemos...]]></description>
			<content:encoded><![CDATA[>Descrito de una manera muy resumida, <a href="http://es.wikipedia.org/wiki/AJAX">AJAX</a> es una tecnolog&iacute;a que nos permite realizar acciones en una p&aacute;gina web que necesiten respuesta del servidor sin recargarla. Con ello conseguimos que nuestra web sea din&aacute;mica y por tanto obtener un dise&ntilde;o m&aacute;s atractivo. Algunos ejemplos de lo que podemos hacer:                 
<ul>
<li>Un enlace que compruebe si un valor existe ya en una base de datos.</li>
<li>Completar un campo de texto de b&uacute;squeda con valores sugeridos por nuestra web.</li>
<li>Un chat web</li>
<li>etc.</li>
</ul>
<p>En este art&iacute;culo vamos a describir como realizar una sencilla llamada AJAX a una fichero externo que ejecutar&aacute; un proceso (una suma entre dos valores enviados mediante POST) y nos devolver&aacute; la salida correspondiente apoy&aacute;ndonos con la librer&iacute;a <a href="http://jquery.com/">jQuery</a>, que aunque no es necesario su uso, lo haremos sobre ella para aprovechar la potencia que nos proporciona. Se podr&iacute;a decir que es el t&iacute;pico <em>Hola mundo</em> en AJAX.</p>
<p>El c&oacute;digo se compone de dos archivos: un archivo donde mostraremos los formularios con datos de entrada y otro con el archivo de procesamiento.</p>
<p>A continuaci&oacute;n mostramos el c&oacute;digo del fichero de entrada de datos (habr&aacute; que tener cuidado con escribir correctamente la ruta a la librer&iacute;a jQuery):</p>
<pre class="code">&lt;html&gt;

&lt;head&gt;

&lt;title&gt;Ejemplo sencillo de AJAX&lt;/title&gt;

&lt;script type="text/javascript" src="/js/jquery.js"&gt;&lt;/script&gt;

&lt;script&gt;
function realizaProceso(valorCaja1, valorCaja2){
        var parametros = {
                "valorCaja1" : valorCaja1,
                "valorCaja2" : valorCaja2
        };
        $.ajax({
                data:  parametros,
                url:   'ejemplo_ajax_proceso.php',
                type:  'post',
                beforeSend: function () {
                        $("#resultado").html("Procesando, espere por favor...");
                },
                success:  function (response) {
                        $("#resultado").html(response);
                }
        });
}
&lt;/script&gt;

&lt;/head&gt;

&lt;body&gt;

Introduce valor 1

&lt;input type="text" name="caja_texto" id="valor1" value="0"/&gt; 


Introduce valor 2

&lt;input type="text" name="caja_texto" id="valor2" value="0"/&gt;

Realiza suma

&lt;input type="button" href="javascript:;" onclick="realizaProceso($('#valor1').val(), $('#valor2').val());return false;" value="Calcula"/&gt;

&lt;br/&gt;

Resultado: &lt;span id="resultado"&gt;0&lt;/span&gt;

&lt;/body&gt;

&lt;/html&gt;

</pre>
<p>&nbsp;</p>
<p>En este c&oacute;digo, utilizamos los id de las cajas de texto para pasarle sus valores a la funci&oacute;n <em>realizaProceso</em>. En esta funci&oacute;n recogemos los valores de entrada en un array parametros y enviamos mediante AJAX especificando el par&aacute;metro <em>data</em> (datos que mandamos), <em>url</em> (direcci&oacute;n del archivo de proceso) y <em>type</em> (POST o GET).</p>
<p>Por &uacute;ltimo vemos que tenemos dos eventos: <em>beforeSend</em> y <em>success</em> donde podemos indicar la acci&oacute;n a realizar mientras se procesan los datos y tras terminar de procesarlos (en este caso jugar con el contenido HTML del id resultado).</p>
<p>Ahora vemos el archivo de procesamiento de datos (<em>ejemplo_ajax_proceso.php</em>) que &uacute;nicamente suma los datos recibidos por POST:</p>
<pre class="code php">
&lt;?php 
$resultado = $_POST['valorCaja1'] + $_POST['valorCaja2']; 
echo $resultado;
?&gt;
</pre>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=26</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/usando-ajax-un-simple-ejemplo-con-php-y-jquery.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Crear plugins de jquery</title>
			<link>http://www.imaginanet.com/blog/plugins-jquery.html</link>
			<guid>http://www.imaginanet.com/blog/plugins-jquery.html</guid>
			<comments>http://www.imaginanet.com/blog/plugins-jquery.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Sat,  6 Feb 2010 21:09:29 +0100</pubDate>
					<category><![CDATA[JavaScript]]></category>
					<category><![CDATA[jQuery]]></category>
					<description><![CDATA[Jquery es una de las bibliocas javascript m&aacute;s simples e utilizadas. Crear plugins para esta biblioteca es muy sencillo. Vamos a ver los pasos necesarios: 

Primero tenemos que incluir la biblioteca jquery en la cabecera. Nos la descargamos desde su web y la a&ntilde;adimos de la siguiente forma:
			
		


Luego creamos...]]></description>
			<content:encoded><![CDATA[><a href="http://www.jquery.com" target="_blank">Jquery</a> es una de las bibliocas javascript m&aacute;s simples e utilizadas. Crear plugins para esta biblioteca es muy sencillo. Vamos a ver los pasos necesarios:<br /><br /> 
<ul>
<li>Primero tenemos que incluir la biblioteca jquery en la cabecera. Nos la descargamos desde su web y la a&ntilde;adimos de la siguiente forma:<br />
<pre class="code">			<script src="/ruta_a_jquery/jquery.js" type="text/javascript"></script>
		</pre>
</li>
<li>
<p>Luego creamos nuestro archivo del plugin, que luego tambi&eacute;n tendremos que a&ntilde;adirlo en la cabecera para utilizarlo.</p>
<pre class="code">			$.fn.duplicar = function () {
				this.each(function () {
					var html = "<br />"+$(this).html();
					$(this).append(html);
				});
			}
		</pre>
<p>Lo que hace este plugin es duplicar el contenido de los elementos seleccionados.<br /> $.fn es el objeto de jquery que contiene las funciones que nosotros le definimos. Dentro del c&oacute;digo de la funci&oacute;n, el this es un array con los elementos seleccionados con jquery. Con la funci&oacute;n each, recorremos ese array.</p>
</li>
<li> Para utilizarlo:
<pre class="code">			$("div.doble").duplicar();
		</pre>
<p>As&iacute; duplicar&iacute;amos el contenido de todos los divs con la clase "doble"</p>
</li>
</ul>
<p>&Eacute;ste es un ejemplo muy b&aacute;sico. Para m&aacute;s informaci&oacute;n s&oacute;lo hay que pasarse por la web de jquery la cual tiene una bastante buena <a href="http://docs.jquery.com/Main_Page" target="_blank">documentaci&oacute;n</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=25</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/plugins-jquery.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Display inline-block e internet explorer.</title>
			<link>http://www.imaginanet.com/blog/display-inline-block-e-internet-explorer.html</link>
			<guid>http://www.imaginanet.com/blog/display-inline-block-e-internet-explorer.html</guid>
			<comments>http://www.imaginanet.com/blog/display-inline-block-e-internet-explorer.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Sat,  6 Feb 2010 19:41:50 +0100</pubDate>
					<category><![CDATA[XHTML]]></category>
					<category><![CDATA[CSS]]></category>
					<category><![CDATA[Internet Explorer]]></category>
					<category><![CDATA[Navegadores]]></category>
					<description><![CDATA[La propiedad display de css (en la versi&oacute;n 2.1), puede contener un valor muy interesante, inline-block. Con este valor conseguimos que el elemento con esa propiedad se comporte como una caja, pero mostrandose en la misma l&iacute;nea, como si tuviese display: inline.
&iquest;Y esto de qu&eacute; nos sirve?, pues si no...]]></description>
			<content:encoded><![CDATA[><p>La propiedad display de css (en la versi&oacute;n 2.1), puede contener un valor muy interesante, <strong>inline-block</strong>. Con este valor conseguimos que el elemento con esa propiedad se comporte como una caja, pero mostrandose en la misma l&iacute;nea, como si tuviese display: inline.</p>
<p>&iquest;Y esto de qu&eacute; nos sirve?, pues si no usamos esta propiedad tendr&iacute;amos que a&ntilde;adirle a la caja un "float: left", por ejemplo, pero esto trae unas consecuencias, a veces, muy molestas. Por ejemplo, si queremos mostrar contenido dividido en cajas y que se muestren filas de 3 cajas, si &eacute;stas var&iacute;an con la altura, pasar&iacute;a esto:</p>
<img src="http://www.imaginanet.com/blog_files/inline-block/confloat.png" alt="con float" />
<p>Esto pasa porque al tener "float:left", las cajas "buscan" el primer espacio disponible a su izquierda. &Eacute;sto podr&iacute;a solucionarse desde el html, a&ntilde;adiendo cada tres cajas un elemento que tenga la propiedad "clear:both". Pero si queremos que el n&uacute;mero de cajas por fila var&iacute;e dependiendo de la anchura de nuestra ventana del navegador, ya no valdr&iacute;a esta soluci&oacute;n. Adem&aacute;s si usamos la propiedad "display: inline-block", podemos alinear las cajas arriba, abajo, al centro , con tan solo cambiar la propiedad vertical-align. Si ponemos "vertical-align:top", tendremos esto:</p>
<img src="http://www.imaginanet.com/blog_files/inline-block/deseable.png" alt="con float" />
<h2>Hacks para conseguir "display: inline-block" en internet explorer 6 y 7</h2>
<p>Nuestros amigos Ie6 e Ie7, como siempre, mostrandonos su tecnolog&iacute;a punta (recordemos que &eacute;sto es CSS 2.1), no implementan esta propiedad completamente.</p>
<p>De todas formas es muy sencillo hacerlo funcionar con un peque&ntilde;o truco. En vez de usar "display: inline-block", tendr&iacute;amos que ponerles "display: inline" y a&ntilde;adirles la propiedad "zoom:1"</p>
<pre class="code">	div.block {
		display: inline-block;
		#display: inline-block;
		_display: inline;
		zoom: 1;
	}
</pre>
<p>La "#" es un hack para que solo aplique esa propiedad IE7 y el "_" para IE6. La propiedad zoom solo la cojeran esos 2 navegadores, puesto que no es est&aacute;ndar, haciendo que el elemento se comporte como una caja.</p>
<a href="http://www.imaginanet.com/blog_files/inline-block/inline-block.htm" target="_blank">Ver ejemplo en funcionamiento.</a><br /> <a href="http://www.imaginanet.com/blog_files/inline-block/inline-block.htm" target="_blank"><img src="http://www.imaginanet.com/blog_files/inline-block/ejemplo.png" alt="con float" /></a>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=24</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/display-inline-block-e-internet-explorer.html</feedburner:origLink>
		</item>
				
		<item>
			<title>HTML 5 y el famoso tag "video"</title>
			<link>http://www.imaginanet.com/blog/html-5-y-el-famoso-tag-video.html</link>
			<guid>http://www.imaginanet.com/blog/html-5-y-el-famoso-tag-video.html</guid>
			<comments>http://www.imaginanet.com/blog/html-5-y-el-famoso-tag-video.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Thu, 28 Jan 2010 08:27:06 +0100</pubDate>
					<category><![CDATA[HTML5]]></category>
					<category><![CDATA[Navegadores]]></category>
					<description><![CDATA[HTML5 ha llegado, y aunque sea pronto para que el usuario pueda disfrutar de todo su potencial, los programadores hace ya unos meses que podemos ir viendo como ser&aacute;n las webs de dentro de unos a&ntilde;os. El tag &lt;video/&gt; es el que m&aacute;s revuelo est&aacute; teniendo, y no solo por su integraci&oacute;n en sitios...]]></description>
			<content:encoded><![CDATA[>HTML5 ha llegado, y aunque sea pronto para que el usuario pueda disfrutar de todo su potencial, los programadores hace ya unos meses que podemos ir viendo como ser&aacute;n las webs de dentro de unos a&ntilde;os.<br /><br /> El tag &lt;video/&gt; es el que m&aacute;s revuelo est&aacute; teniendo, y no solo por su integraci&oacute;n en sitios como Youtube o Vimeo, sin&oacute; por los est&aacute;ndares soportados por cada navegador.<br /><br /> Mozilla se ha puesto firme al respecto y ha anunciado que no piensa incluir el estandar h264, ya que este no es un codec abierto y existen otros que si lo son y pueden ofrecer mejor calidad.<br /> Esto nos deja en una situaci&oacute;n en la que los navegadores web que actualmente soportan el tag  de HTML5:<br /><br /> &bull;Presto/Opera: HTML5 mediante GStreamer (incluye s&oacute;lo Ogg/Theora).<br /> &bull;WebKit/Chrome: HTML5 mediante ffmpeg (Ogg/Theora y H.264/MP4).<br /> &bull;Gecko/Firefox: HTML5 con Ogg/Theora.<br /> &bull;WebKit/Epiphany: HTML5 mediante GStreamer (Ogg/Theora garantizado).<br /> &bull;WebKit/Safari: HTML5 mediante QuickTime (H.264/MOV/M4V, puede reproducir Ogg/Theora con XiphQT components).<br /><br /> Nos encontramos frente a una guerra en la que empresas como Apple y Microsoft, forman parte de la MPEG-LA, empresa que tiene la patente del codec h264, frente a Mozilla (por el momento) que se ha posicionado en contra de usar una tecnolog&iacute;a propietaria que condicione la red.<br /><br />Por su parte, Youtube no da su brazo a torcer. A pesar de que hay decenas de peticiones y de comentarios pidiendo el soporte de Ogg Theora, no sueltan prenda al respecto.]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=23</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/html-5-y-el-famoso-tag-video.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Menú desplegable con CSS</title>
			<link>http://www.imaginanet.com/blog/menu-desplegable-con-css.html</link>
			<guid>http://www.imaginanet.com/blog/menu-desplegable-con-css.html</guid>
			<comments>http://www.imaginanet.com/blog/menu-desplegable-con-css.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 28 Dec 2009 18:28:03 +0100</pubDate>
					<category><![CDATA[XHTML]]></category>
					<category><![CDATA[CSS]]></category>
					<description><![CDATA[Vamos a crear un men&uacute; desplegable utilizando &uacute;nicamente CSS. En principio no necesitaremos nada de javascript. Este men&uacute; funcionar&aacute; en las &uacute;ltimas versiones de firefox, chrome, safari, opera, e internet explorer (versi&oacute;n 8). Para que funcione en Internet explorer 7 s&oacute;lo...]]></description>
			<content:encoded><![CDATA[>Vamos a crear un men&uacute; desplegable utilizando &uacute;nicamente <a href=&quot;http://www.imaginanet.com/diseno-web/desarrollo-web/maquetacion-html-css.html&quot; target=&quot;_blank&quot;>CSS</a>. En principio no necesitaremos nada de javascript. Este men&uacute; funcionar&aacute; en las &uacute;ltimas versiones de firefox, chrome, safari, opera, e internet explorer (versi&oacute;n 8). Para que funcione en Internet explorer 7 s&oacute;lo necesitaremos a&ntilde;adir unos peque&ntilde;os <a href=&quot;#hacks&quot;>hacks</a>. En explorer 6 necesitaremos utilizar javascript, puesto que este navegador no reconoce el selector &quot;:hover&quot; en elementos que no sean &quot;a&quot;, los cuales no pueden contener elementos de tipo bloque dentro, si queremos cumplir los est&aacute;ndares, claro. Al final se explican los <a href=&quot;#hacks&quot;>hacks necesarios</a>.<br /><br /> Para comenzar definimos la estructura del men&uacute;, bas&aacute;ndonos en listas desordenadas (ul, li):<br /><br />
<pre class=&quot;code&quot;><ul class=&quot;menu&quot;>
	<li>
		<a class=&quot;item more&quot; href=&quot;#&quot;>Item 1</a>
		<ul>
			<li>
				<a class=&quot;item&quot; href=&quot;#&quot;>Option 1</a>
			</li>
			<li>
				<a class=&quot;item&quot; href=&quot;#&quot;>Option 2</a>
			</li>
		</ul>
	</li>
</ul>
</pre>
<br /> Cada li tendr&aacute; un &quot;a&quot; con clase &quot;item&quot;, y si queremos a&ntilde;adirle un submen&uacute;, un &quot;ul&quot;, en este caso le tendremos que a&ntilde;adir la clase more al &quot;a&quot; por cuesti&oacute;n de estilo, as&iacute; mostrar&aacute; una flecha a la derecha, indicando que hay un submen&uacute; oculto. <br /><br /> Ahora tenemos que ocultar los submen&uacute;s desde la hoja de estilos, para eso le a&ntilde;adimos la propiedad &quot;display:none&quot; a los &quot;ul&quot; dentro del &quot;ul&quot; principal: <br /><br />
<pre class=&quot;code&quot;>ul.menu {
	display: inline-block;
	margin: 0;
	padding: 0;
	list-style-type: none;
	white-space: nowrap;
}
ul.menu ul {
	display: none;
}
ul.menu li {
	position: relative;
	display: inline-block;
}
ul.menu ul li {
	display: block;
}
</pre>
<br /> A los li del primer nivel les aplicamos la propiedad &quot;display: inline-block&quot;, para que se muesten en una sola l&iacute;nea, a los dem&aacute;s les ponemos &quot;display:block&quot;. El primer ul tiene la propiedad &quot;white-space: nowrap&quot;, para forzar a que sus &quot;li&quot; no salten de l&iacute;nea. Ahora ya tenemos los submen&uacute;s ocultos, falta hacerlos aparecer:<br /><br />
<pre class=&quot;code&quot;>ul.menu &gt; li:hover &gt; ul {
	display: block;
	position: absolute;
	top: 100%;
	left: 0;
}

ul.menu ul li:hover &gt; ul {
	display: block;
	position: absolute;
	top: 0;
	left: 100%;
}
</pre>
<br /> Los submen&uacute;s est&aacute;n posicionados absolutamente con respecto al &quot;li&quot; que los contiene, ya que &eacute;stos est&aacute;n posicionados relativamente. En el caso de los submen&uacute;s del primer nivel los colocamos con &quot;top:100%,left:0&quot;, para que salgan justo debajo del item padre. Para los dem&aacute;s submen&uacute;s ponemos &quot;top: 0; left: 100%&quot;, con lo que saldr&aacute;n justo a la derecha del item padre.<br /><br /> Al final nos quedar&aacute; algo parecido a esto:<br /><br />
<div><img title=&quot;men&uacute; desplegable&quot; src=&quot;http://www.imaginanet.com//blog_files/menu-css/captura.png&quot; alt=&quot;men&uacute; desplegable&quot; width=&quot;370&quot; height=&quot;158&quot; /></div>
<br /> <br /><strong></strong>
<h3><strong><a name=&quot;hacks&quot;></a></strong>Hacks para Internet explorer 6 y 7:</h3>
<br /> <a href=&quot;http://www.imaginanet.com/blog/display-inline-block-e-internet-explorer.html&quot;>En Internet explorer 6 y 7, no funciona la propiedad &quot;display: inline-block&quot;</a>, pero con un sencillo truco podemos conseguir el mismo efecto:<br /><br />
<pre class=&quot;code&quot;>ul.menu li {
	position: relative;
	display: inline-block;
	_display: inline;
	_zoom: 1;
	#display: inline;
	#zoom: 1;
}
</pre>
<br /> Para hacer que los submen&uacute;s aparezcan en internet explorer 6, tendremos que utilizar javascript, como coment&aacute;bamos al principio. Utilizando la librer&iacute;a jquery, por ejemplo, har&iacute;amos lo siguiente:<br /><br />
<pre class=&quot;code&quot;>$(&quot;ul.submenu li&quot;).hover(
	function () {
		$(this).addClass(&quot;hover&quot;);
	},
	function () {
		$(this).removeClass(&quot;hover&quot;);
	}
);
</pre>
<br /> Como tampoco funciona el selector &quot;&gt;&quot; en IE6, necesitaremos hacer unos cambios en la hoja de estilos: <br /><br />
<pre class=&quot;code&quot;>ul.menu li.hover ul {
	display: block;
	position: absolute;
	top: 100%;
	left: 0;
}

ul.menu li.hover ul ul {
	display: none;
}

ul.menu ul li.hover ul {
	display: block;
	position: absolute;
	top: 0;
	left: 100%;
}

ul.menu ul li.hover ul ul {
	display: none;
}
</pre>
<br /> Para probar este men&uacute; accede <a href=&quot;/blog_files/menu-css/index.htm&quot; target=&quot;_blank&quot;>aqu&iacute;</a>.<br /> Para descargarte los archivos utilizados haz click <a href=&quot;/blog_files/menu-css/menu-css.zip&quot;>aqu&iacute;</a>.<br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=22</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/menu-desplegable-con-css.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Creando un buscador para tu página usando Yahoo! Query Language</title>
			<link>http://www.imaginanet.com/blog/creando-un-buscador-para-tu-pagina-usando-yahoo-query-language.html</link>
			<guid>http://www.imaginanet.com/blog/creando-un-buscador-para-tu-pagina-usando-yahoo-query-language.html</guid>
			<comments>http://www.imaginanet.com/blog/creando-un-buscador-para-tu-pagina-usando-yahoo-query-language.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Thu, 24 Dec 2009 11:01:31 +0100</pubDate>
					<category><![CDATA[Buscadores]]></category>
					<description><![CDATA[Hace un par de semanas vi un vídeo tutorial en el que se muestra la potencia y la facilidad de uso de Yahoo! Query Language donde creando un código HTML y Javascript muy simple obtiene como respuesta (por cierto una respuesta muy rápida) la búsqueda en los buscadores de Yahoo!, Google y Bing. El vídeo en cuestión es el...]]></description>
			<content:encoded><![CDATA[><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 		A:link { so-language: zxx } -->
<p style="margin-bottom: 0cm;">Hace un par de semanas vi un <a href="http://ajaxian.com/archives/three-search-engines-one-interface-25-minutes-live-code">vídeo tutorial</a> en el que se muestra la potencia y la facilidad de uso de <a href="http://developer.yahoo.com/yql/">Yahoo! Query Language</a> donde creando un código HTML y Javascript muy simple obtiene como respuesta (por cierto una respuesta muy rápida) la búsqueda en los buscadores de Yahoo!, Google y Bing. El vídeo en cuestión es el siguiente:</p>
<p style="margin-bottom: 0cm;"> </p>
<div>
<object width="400" height="275" data="http://vimeo.com/moogaloop.swf?clip_id=8075850&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash">
<param name="data" value="http://vimeo.com/moogaloop.swf?clip_id=8075850&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" />
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=8075850&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" />
</object>
</div>
<p><a href="http://vimeo.com/8075850">Building a search mashup with YQL using Google, Yahoo and Bing - live :)</a> from <a href="http://vimeo.com/user574521">Christian Heilmann</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 		A:link { so-language: zxx } -->
<p style="margin-bottom: 0cm;">Tras verlo empecé a realizar pruebas con la <a href="http://developer.yahoo.com/yql/console/">consola de YQL</a> para ver que nos permite hacer esta API y realicé la primera consulta:</p>
<pre class="code">select * from search.web(20) where query="PHP";</pre>
Después probé a realizar la misma búsqueda en todos los buscadores:<br />
<pre class="code">select * from query.multi where queries='
  select *  from microsoft.bing.web(20) where query="PHP";
  select *  from search.web(20) where query="PHP";
  select *  from google.search(20) where q="PHP"
'
</pre>
<br />Lo más interesante, es que en la consola nos proporciona <a href="http://query.yahooapis.com/v1/public/yql?q=%09select%20*%20from%20query.multi%20where%20queries%3D'%0A%09%20%20select%20*%20%20from%20microsoft.bing.web(20)%20where%20query%3D%22PHP%22%3B%0A%09%20%20select%20*%20%20from%20search.web(20)%20where%20query%3D%22PHP%22%3B%0A%09%20%20select%20*%20%20from%20google.search(20)%20where%20q%3D%22PHP%22%0A'&format=xml&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys">la dirección para obtener esta consulta</a> y devuelve los datos en formato XML, por lo que hacer una aplicación que realice la llamada y obtenga la respuesta es realmente fácil de realizar.<br /><br />Tras buscar por la documentación no he encontrado ninguna opción de poder filtrar los resultados por país o idioma, por lo que habrá que esperar hasta que añadan esta característica y podamos realizarlas en otros idiomas.<br /><br /> Finalmente, viendo <a href="http://developer.yahoo.com/yql/guide/index.html">la documentación</a> observamos que tiene posibilidades muy variadas como añadir un post a tu blog Wordpress, interactuar con Flickr, con Yahoo! Maps, Amazon o Facebook entre otras, pudiendo usar YQL como API para estos servicios, por lo que es un servicio a tener en cuenta para integrarlo con otro uso que no sea el de realizar búsquedas.<br /><br /> <br />
<p style="margin-bottom: 0cm;"> </p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=21</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/creando-un-buscador-para-tu-pagina-usando-yahoo-query-language.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Como usar Google Apps en tu web</title>
			<link>http://www.imaginanet.com/blog/como-usar-google-apps-en-tu-web.html</link>
			<guid>http://www.imaginanet.com/blog/como-usar-google-apps-en-tu-web.html</guid>
			<comments>http://www.imaginanet.com/blog/como-usar-google-apps-en-tu-web.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Thu, 24 Dec 2009 10:41:10 +0100</pubDate>
					<category><![CDATA[Google Apps]]></category>
					<description><![CDATA[Si alguna vez necesitas incluir google apps en tu dominio, aqui tienes una sencilla explicación de como puedes empezar.
1.Regístrate y accede a tu cuenta
En la página  principal de Google Apps, haz clic en "Comparar ediciones y registrarse"  para empezar a utilizar el programa y acceder al panel de  control.Más...]]></description>
			<content:encoded><![CDATA[>Si alguna vez necesitas incluir google apps en tu dominio, aqui tienes una sencilla explicación de como puedes empezar.<br /><br />
<h3 style="font-size: 1.17em;">1.Regístrate y accede a tu cuenta</h3>
En la <a href="http://www.google.com/a/help/intl/en/business/applications.html">página  principal de Google Apps</a>, haz clic en "Comparar ediciones y registrarse"  para empezar a utilizar el programa y acceder al panel de  control.<br /><br /><strong><a href="http://www.google.com/support/a/bin/answer.py?answer=107246">Más  información <br /></a></strong><br />
<h3 style="font-size: 1.17em;">2.Verifica la propiedad del dominio</h3>
Confirma que eres el propietario del dominio con el que te has registrado para  habilitar Google Apps.<br /><br />
<h3 style="font-size: 1.17em;">3.Personaliza Google Apps</h3>
Google Apps permite modificar fácilmente varias configuraciones para aplicarlas  a toda tu organización.<br /><br />
<h3 style="font-size: 1.17em;">4.Crea cuentas de usuario</h3>
En el panel de control, crea tantas cuentas de usuario como necesite tu  organización.<br /><br />
<h3 style="font-size: 1.17em;">5.Migrar datos y activa el correo electrónico</h3>
Configura los registros Mail Exchange (MX) de tu dominio para habilitar la  entrega de correo electrónico.<br /><br />
<h3 style="font-size: 1.17em;">6.Implanta Google Apps</h3>
Ahora que has creado cuentas de usuario y has activado los servicios, ha llegado  el momento de ayudar a tus usuarios para que empiecen a utilizar Google Apps.<br /><br />
<h3 style="font-size: 1.17em;">¿Cómo ver el correo de nuestra cuenta?</h3>
- Podemos usar las funciones de php imap. Aquí va un pequeño ejemplo de como sacar un listado de los últimos 7 mensajes de correo.<br /><br />
<pre class="code php">function fix_text($str)
{
    $subject = '';
    $subject_array = imap_mime_header_decode($str);

    foreach ($subject_array AS $obj)
        $subject .= rtrim($obj->text, "t");

    return $subject;
} 


$mail = imap_open('{imap.gmail.com:993/novalidate-cert/ssl}', 'cuenta de correo', 'contraseña de la cuenta');
$last = imap_num_msg($mail);

echo '<strong><a href="/url_dominio_google/?account_id=cuenta_de_correo" target="_blank">Mensajes de correo ('.$last.') / <span style="color: #e71d02;">Nuevos ('.$nuevos.')</span></a></strong>';

if ($last>7) $ini=($last-7);
else $ini=1;

$nuevos=0;
for ($i=$last;$i>=$ini;$i--){
	$header = imap_header($mail, $i);
	$from=$header->from;
	if (is_array($from)){
	        $de=$from[0]->personal;
	}

	$asunto=fix_text($header->subject);
	$asunto='<span title="'.$asunto.'">'.$asunto."</span>";

	if ($header->Unseen=="U"){
		$de='<strong>'.$de.'</strong>';
		$asunto='<strong>'.$asunto."</strong>";
		$nuevos++;
	}
	echo '<span title="'.$from[0]->personal.'">'.$de.'</span> - '.$asunto.' '.date('d/m', $header->udate);
}

imap_close($mail);<br />
</pre>
En el ejemplo conectamos con la cuenta de correo con la contraseña y obtenemos los últimos 7 mensajes de correo.<br />Luego vamos sacando mensaje a mensaje con el formato html que más no interese.<br />La condición de la linea 32 es para saber si el mensaje ha sido visto por el usuario o todavía no.<br /><br />
<h3 style="font-size: 1.17em;">¿Cómo ver el google calendar?</h3>
Para esta opción hay que tener requerido en nuestro php las librerías de Zend que podemos descargar de la web http://www.zend.com<br />A continuación nos logueamos con nuestro usuario y contraseña de google apps y pedimos la información del tramo de fechas de google calendar que queremos obtener.<br />A continuación tenéis un ejemplo de como obtener los datos de google calendar del mes de enero de 2010<br /> 
<pre class="code php">require_once('Zend/Loader.php');
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');

$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient('usuario google apps', 'contraseña', $service);
$service = new Zend_Gdata_Calendar($client);
$dominioGapps=explode('@','usuario google apps');

echo 'http://www.google.com/calendar/hosted/'.trim($dominioGapps[1]).'/render?account_id='.urlencode('usuario google apps');

$query = $service->newEventQuery();
$query->setUser('id del calendario'); //Tambien se puede poner la opcion 'default' para el calendario común

$query->setVisibility('private');
$query->setProjection('full');
$query->setOrderby('starttime');
//$query->setFutureevents('true');// Retrieve the event list from the calendar server
$query->setStartMin('2010-01-01');
$query->setStartMax('2010-01-30');
try {    
	$eventFeed = $service->getCalendarEventFeed($query);
} catch (Zend_Gdata_App_Exception $e) {
	echo "Error: " . $e->getResponse();
}

foreach ($eventFeed as $event) {
	$valor=$event->when;
	$donde=$event->where;
	$autor=$event->author;
	$categoria=$event->category;
	$idevento=$event->link;
	$diaEvento=$valor[0]->startTime;
	$diaMesEvento = intval(substr($diaEvento,8,2));
	$dias[$diaMesEvento] .= $event->title->text.". Hora: ".substr($diaEvento,11,5)." (".substr($diaEvento,23,6).")n";
	$enlaceEvento[$diaMesEvento]=$idevento[0]->href;
}
</pre>
En este ejemplo obtenemos un array con los eventos que hay por dia]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=20</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/como-usar-google-apps-en-tu-web.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Usando el API de Google Analytics para mejorar nuestra web</title>
			<link>http://www.imaginanet.com/blog/usando-el-api-de-google-analytics-para-mejorar-nuestra-web.html</link>
			<guid>http://www.imaginanet.com/blog/usando-el-api-de-google-analytics-para-mejorar-nuestra-web.html</guid>
			<comments>http://www.imaginanet.com/blog/usando-el-api-de-google-analytics-para-mejorar-nuestra-web.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed, 23 Dec 2009 16:11:32 +0100</pubDate>
					<category><![CDATA[Google Analytics]]></category>
					<category><![CDATA[SEO]]></category>
					<description><![CDATA[Desde que Google sac&oacute; su herramienta Analytics nos proporcion&oacute; una nueva perspectiva gratuita para ver nuestra web desde los ojos de las personas que la visitan permiti&eacute;ndonos conocer lo que "realmente opinan" los usuarios de tu web.
A primera vista desde el panel de control de Google Analytics, la gran...]]></description>
			<content:encoded><![CDATA[><p>Desde que Google sac&oacute; su herramienta <a href="http://www.google.com/analytics/">Analytics</a> nos proporcion&oacute; una nueva perspectiva gratuita para ver nuestra web desde los ojos de las personas que la visitan permiti&eacute;ndonos conocer lo que "realmente opinan" los usuarios de tu web.</p>
<p>A primera vista desde el panel de control de Google Analytics, la gran cantidad de opciones y men&uacute;s que tenemos resulta hasta confusa para entender realmente que nos est&aacute;n diciendo y m&aacute;s a&uacute;n para gente inexperta. As&iacute; que tras un tiempo trabajando con ella, decid&iacute; ponerme manos a la obra para simplificar esta gran herramienta para hacerla un poco m&aacute;s sencilla.</p>
<h3>&iquest;C&oacute;mo usar el API?</h3>
<p>En primer lugar, damos por supuesto que tenemos una cuenta de Google Analytics y un sitio web <a href="http://www.google.com/support/googleanalytics/bin/static.py?page=guide.cs&amp;guide=19779&amp;topic=19783">con el c&oacute;digo Javascript</a> que nos haga recolectar las estad&iacute;sticas en nuestra cuenta.</p>
<p>En segundo lugar deberemos elegir unas librer&iacute;as que nos ayuden a usar el API en funci&oacute;n del lenguaje de programaci&oacute;n que vayamos a usar. Para ello, podemos encontrar en la <a href="http://code.google.com/intl/es-ES/apis/analytics/docs/gdata/gdataLibraries.html">secci&oacute;n de librer&iacute;as de Google Analytics</a> una buena cantidad de librer&iacute;as para diferentes lenguajes (Java, Python, PHP, etc.).</p>
<p>Tras estos dos pasos iniciales, tenemos todo listo para empezar a utilizar el API. Podemos echar un vistazo a la <a href="http://code.google.com/intl/es-ES/apis/analytics/docs/gdata/gdataReferenceDimensionsMetrics.html">documentaci&oacute;n del API</a>&nbsp; y como era de esperar las posibilidades que nos ofrece esta complet&iacute;sima API son muchas.</p>
<p>Lo que m&aacute;s nos interesa es conocer los par&aacute;metros con los que podemos utilizarla: <strong>dimensiones</strong> qu&eacute; es lo que vamos a medir y las <strong>m&eacute;tricas</strong> son en qu&eacute; unidad lo vamos a medir. Estas dimensiones y m&eacute;tricas las podemos agrupar de la manera que queramos, aunque para obtener unos buenos resultados deberemos hacerlo con sentido y adem&aacute;s, podemos hacer el uso de <strong>filtros</strong>, que nos permite filtrar los valores devueltos por una m&eacute;trica o una dimensi&oacute;n (por ejemplo una direcci&oacute;n web en concreto).</p>
<p>A continuaci&oacute;n vamos a hablar de los datos b&aacute;sicos que se desprenden de su uso.</p>
<h3><strong>&iquest;Tiene buen contenido o dise&ntilde;o mi web?</strong></h3>
<p>Tras interpretar los datos que obtenemos, podemos considerar si nuestra web tiene buenos contenidos o no desde dos puntos de vista, globalmente o espec&iacute;ficamente para una p&aacute;gina determinada.</p>
<p><span style="text-decoration: underline;">Desde el punto de vista global</span>, deberemos prestar atenci&oacute;n al grupo de m&eacute;tricas <code>ga:bounces</code> y <code>ga:entrances</code> que nos dir&aacute; el tanto por cien de rebote de nuestra web. Este c&aacute;lculo lo haremos realizando la divisi&oacute;n de&nbsp; <code>ga:bounces</code> entre <code>ga:entrances</code> d&aacute;ndonos como resultado el n&uacute;mero de cuantas personas abandonan la web tras visitar nuestra p&aacute;gina inicial.</p>
<p>Un alto n&uacute;mero en el tanto por cien de rebotes nos indica que la p&aacute;gina inicial no contiene o no muestra de manera correcta lo que el usuario esperaba encontrar en ella y por tanto vuelve a la p&aacute;gina anterior por donde lleg&oacute;.</p>
<p>Otra valoraci&oacute;n que podemos hacer es si estos contenidos globales son interesantes o no para el usuario mediante la m&eacute;trica <code>ga:timeOnSite</code> que nos proporciona la cantidad de tiempo que estuvo el usuario en nuestra web y la dimensi&oacute;n <code>ga:pageDepth</code>, que nos dice la cantidad media que los usuarios ven cuando entran en nuestra web.</p>
<span style="text-decoration: underline;">Desde el punto de vista espec&iacute;fico para una determinada p&aacute;gina</span>, si existe un alto n&uacute;mero n&uacute;mero de rebotes significa que al llegar a esa p&aacute;gina es confusa o no tiene inter&eacute;s para el usuario as&iacute; que deber&iacute;amos mejorar los aspectos donde falle. Este c&aacute;lculo lo realizaremos realizando la divisi&oacute;n de las dimensiones <code>ga:bounces</code> entre <code>ga:uniquePageviews</code> a&ntilde;adiendo la dimensi&oacute;n <code>ga:pagePath</code> a la consulta.
<h3><strong>&iquest;Son buenas las palabras clave que utilizo para cada p&aacute;gina?</strong></h3>
<p>Las palabras claves nos sirven junto al contenido de cada p&aacute;gina para describirla de cara a los buscadores. Para ver si las palabras claves que describen nuestras p&aacute;ginas son buenas podemos utilizar las dimensiones <code>ga:source</code> filtrando por <code>ga:pagePath</code>, especificando en esta &uacute;ltima la p&aacute;gina deseada a comprobar.</p>
<p>Si el resultado que nos devuelve es alto desde los buscadores Google, Yahoo, Bing, etc. significa que de cara a los buscadores las palabras clave describen bien el contenido.</p>
<h3><strong>&iquest;Cu&aacute;l es el comportamiento de los visitantes de mi web?</strong></h3>
<p>Un valor interesante es el que nos proporciona la dimensi&oacute;n <code>ga:secondPagePath</code>, que nos dice cu&aacute;l fue la segunda p&aacute;gina que visit&oacute; el usuario tras ver nuestra web. &Eacute;sto nos indica que es lo que m&aacute;s llama la atenci&oacute;n en nuestra web pudiendo potenciar otras p&aacute;ginas que deber&iacute;an tener mejores resultados.</p>
<p>Podemos observar tambi&eacute;n la navegaci&oacute;n que realizan los usuarios para p&aacute;ginas determinadas y ver desde qu&eacute; p&aacute;gina llegaron y a qu&eacute; p&aacute;gina fueron desde ella. En este caso, para saber desde qu&eacute; p&aacute;gina llegaron a otra deberemos usar como par&aacute;metros la dimensi&oacute;n <code>ga:previousPagePath</code>,m&eacute;trica <code>ga:pageviews</code> y el filtro <code>ga:nextPagePath</code> especificando la p&aacute;gina objetivo.</p>
<p>Por el contrario, para saber qu&eacute; p&aacute;gina visitaron desde la actual usaremos la dimensi&oacute;n <code>ga:nextPagePath</code>, m&eacute;trica <code>ga:pageviews</code> y filtro <code>ga:previousPagePath</code> con la p&aacute;gina que queremos consultar</p>
<p>Los datos obtenidos nos dir&aacute;n si la navegaci&oacute;n que realiza el usuario es la que esperamos o por el contrario no lo es y por tanto el contenido no le interesa.</p>
<h3><strong>Conclusiones</strong>&nbsp;</h3>
Aunque esta herramienta es muy potente para el marketing web y s&oacute;lo hemos comentado algunas de las m&aacute;s importantes posibilidades que nos ofrece el API, tambi&eacute;n nos ofrece muchas m&aacute;s como seguimiento de campa&ntilde;as, comercio electr&oacute;nico, fidelizaci&oacute;n de clientes, etc.<br />
<p>Todo estos datos sobre el patr&oacute;n de comportamiento de los usuarios nos sirve para conseguir un mejor <a title="&iquest;C&oacute;mo hacemos el posicionamiento web?" href="/marketing-online/posicionamiento-web.html">posicionamiento web</a> y por tanto tener m&aacute;s posibilidades de &eacute;xito. Estas t&eacute;cnicas, mezcladas con los conocimientos de marketing tradicional, las utilizamos en Imaginanet para la consecuci&oacute;n de los objetivos planteados en los proyectos de <a title="Agencia de marketing online. &iquest;Qu&eacute; aportamos?" href="/marketing-online.html">marketing online</a> en que participamos.</p>
<p>En pr&oacute;ximas entradas, hablaremos de posibilidades m&aacute;s avanzadas que nos ofrece.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 		A:link { so-language: zxx } -->
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Desde que Google sac&oacute; su herramienta Analytics nos proporcion&oacute; una nueva perspectiva para ver nuestra web desde los ojos de las personas que la visitan con un mont&oacute;n de estad&iacute;sticas de todo tipo. </span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">A primera vista desde el panel de control de Google Analytics, la gran cantidad de opciones y men&uacute;s que tenemos resulta hasta confusa para entender realmente que nos est&aacute;n diciendo y m&aacute;s a&uacute;n para gente inexperta. As&iacute; que tras un tiempo trabajando con ella, decid&iacute; ponerme manos a la obra para simplificar esta gran herramienta para hacerla un poco m&aacute;s sencilla.</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">En primer lugar ech&eacute; un vistazo a la documentaci&oacute;n del API en la direcci&oacute;n <a href="http://code.google.com/intl/es-ES/apis/analytics/">http://code.google.com/intl/es-ES/apis/analytics/</a></span> <span style="font-family: Verdana,sans-serif;">y como era de esperar las posibilidades que nos ofrece esta complet&iacute;sima API son numerosas. A continuaci&oacute;n hablaremos de las conclusiones b&aacute;sicas que podemos obtener con ella, aunque en primer lugar deberemos conocer que estos datos est&aacute;n divididos en dos grupos, dimensiones que es lo que vamos a medir y las m&eacute;tricas, que es en qu&eacute; unidad lo vamos a medir.</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">&iquest;Tiene buen contenido o dise&ntilde;o mi web?</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Tras interpretar los datos que obtenemos, podemos considerar si nuestra web tiene buenos contenidos o no desde dos puntos de vista, globalmente y espec&iacute;ficamente para una p&aacute;gina determinada.</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Desde el punto de vista global, deberemos prestar atenci&oacute;n al grupo de m&eacute;tricas M1. Visitor que nos dir&aacute; el tanto por cien de rebote de nuestra web. Este c&aacute;lculo lo haremos realizando la divisi&oacute;n de las m&eacute;tricas <code>ga:bounces</code> entre <code>ga:entrances</code> d&aacute;ndonos como resultado el n&uacute;mero de cuantas personas abandonan la web tras visitar nuestra p&aacute;gina inicial.</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Un alto n&uacute;mero en el tanto por cien de rebotes nos indica que la p&aacute;gina inicial no contiene o no muestra de manera correcta lo que el usuario esperaba encontrar en ella y por tanto se va a otra. </span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Una vez determinado que el tanto por cien de rebote es lo m&aacute;s bajo posible, podemos estimar si estos contenidos globales son interesantes o no para el usuario mediante la m&eacute;trica </span><code>ga:timeOnSite</code> que nos proporciona la cantidad de tiempo que estuvo el usuario en nuestra web y la dimensi&oacute;n <span style="font-family: Verdana,sans-serif;"><code>ga:pageDepth</code>, que nos dice la cantidad media que los usuarios ven cuando entran en nuestra web.</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Desde el punto de vista espec&iacute;fico para una determinada p&aacute;gina, si existe un alto n&uacute;mero n&uacute;mero de rebotes significa que al llegar a esa p&aacute;gina es confusa o no tiene inter&eacute;s para el usuario as&iacute; que deber&iacute;amos mejorar los aspectos donde falle.</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">&iquest;Son buenas las palabras clave que utilizo para cada p&aacute;gina?</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Las palabras claves nos sirven junto al contenido de cada p&aacute;gina para describirla de cara a los buscadores. Para ver si las palabras claves que describen nuestras p&aacute;ginas son buenas podemos utilizar la m&eacute;trica <code>ga:entrances</code> junto a la dimensi&oacute;n <code>ga:landingPagePath</code> y as&iacute; indicarnos si hemos conseguido nuevas visitas desde buscadores a una p&aacute;gina concreta.</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">&iquest;Cu&aacute;l es el comportamiento de los visitantes de mi web?</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Un valor interesante es el que nos proporciona la dimensi&oacute;n <code>ga:secondPagePath</code>, que nos dice cu&aacute;l fue la segunda p&aacute;gina que visit&oacute; el usuario tras ver nuestra web. &Eacute;sto nos indica que es lo que m&aacute;s llama la atenci&oacute;n en nuestra web pudiendo potenciar otras p&aacute;ginas que deber&iacute;an tener mejores resultados.</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Podemos observar tambi&eacute;n la navegaci&oacute;n que realizan los usuarios para p&aacute;ginas determinadas y ver desde qu&eacute; p&aacute;gina llegaron y a qu&eacute; p&aacute;gina fueron desde ella. Para ello tenemos que utilizar una gran caracter&iacute;stica de esta API que son los filtros, que nos permiten obtener una combinaci&oacute;n de dimensiones y m&eacute;tras filtrando los resultados para una dimensi&oacute;n o m&eacute;trica determinada.</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">En este caso, para saber desde qu&eacute; p&aacute;gina llegaron a otra deberemos usar como par&aacute;metros</span></p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">dimensi&oacute;n <code>ga:previousPagePath</code> m&eacute;trica <code>ga:pageviews</code> </span></p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;"><code>filtro <code>ga:nextPagePath</code> pagina_objetivo.html</code></span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">y para saber qu&eacute; p&aacute;gina visitaron desde la actual</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;"><code>dimensi&oacute;n <code>ga:nextPagePath</code><br />m&eacute;trica <code>ga:pageviews</code> </code></span></p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;"><code>filtro <code>ga:previousPagePath%3D~test.html</code></code></span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Los datos obtenidos nos dir&aacute;n si la navegaci&oacute;n que realiza el usuario es la que esperamos o por el contrario no lo es y por tanto el contenido no le interesa.</span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">Finalmente, debo decir que aunque esta herramienta es muy potente y que s&oacute;lo hemos comentado algunas de las m&aacute;s importantes posibilidades que nos ofrece el API y que podemos ver todo lo que podemos hacer aqu&iacute; </span></p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">http://code.google.com/intl/es-ES/apis/analytics/docs/gdata/gdataReferenceDimensionsMetrics.html</span></p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">, nos sirve para conseguir un mejor posicionamiento web y por tanto tener m&aacute;s posibilidades de &eacute;xito. Estas t&eacute;cnicas las utilizamos desde Imaginanet para conseguir que nuestros clientes tengan &eacute;xito <a href="http://www.imaginanet.com/posicionamiento-seo.html">http://www.imaginanet.com/posicionamiento-seo.html</a></span></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;"><span style="font-family: Verdana,sans-serif;">En pr&oacute;ximas entradas, hablaremos de posibilidades m&aacute;s avanzadas que nos ofrece.</span></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=19</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/usando-el-api-de-google-analytics-para-mejorar-nuestra-web.html</feedburner:origLink>
		</item>
				
		<item>
			<title>La vida más fácil con Google Mail (Gmail y Google Apps for your domain)</title>
			<link>http://www.imaginanet.com/blog/la-vida-mas-facil-con-google-mail-gmail-y-google-apps-for-your-domain.html</link>
			<guid>http://www.imaginanet.com/blog/la-vida-mas-facil-con-google-mail-gmail-y-google-apps-for-your-domain.html</guid>
			<comments>http://www.imaginanet.com/blog/la-vida-mas-facil-con-google-mail-gmail-y-google-apps-for-your-domain.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed, 16 Dec 2009 11:05:45 +0100</pubDate>
					<category><![CDATA[Google Apps]]></category>
					<description><![CDATA[Acabo de darme cuenta de que en GMail, aparece una novedad en color rojo que dice "&iexcl;Nuevo! Videos de Gmail" y veo que es una campa&ntilde;a que Google est&aacute; haciendo a sus usuarios ense&ntilde;&aacute;ndoles todo lo que pueden hacer con GMail. Podeis verla aqu&iacute;.En los v&iacute;deos se explican las distintas...]]></description>
			<content:encoded><![CDATA[>Acabo de darme cuenta de que en GMail, aparece una novedad en color rojo que dice "&iexcl;Nuevo! Videos de Gmail" y veo que es una campa&ntilde;a que Google est&aacute; haciendo a sus usuarios ense&ntilde;&aacute;ndoles todo lo que pueden hacer con GMail. <a title="Abrir en una ventana nueva" href="http://www.google.es/videosgmail" target="_blank">Podeis verla aqu&iacute;.</a><br /><br />En los v&iacute;deos se explican las distintas maravillas del cliente de correo electr&oacute;nico y del servidor. <br />Valorando todo lo que dicen, realmente es aplicable a Google Apps. Nosotros usamos Google Apps y estamos encantados, pero resulta que somos <a title="Ver servicios de integraci&oacute;n de Google Apps" href="/soluciones-on-line/google-apps.html">integradores de Google Apps</a>&nbsp; - para <a title="Ver soluciones de intranet en las que se puede integrar Google Apps" href="/soluciones-on-line/intranet-extranet/intranet.html">intranets</a>, <a title="Ver soluciones de extranet en las que se puede integrar Google Apps" href="/soluciones-on-line/intranet-extranet/extranet.html">extranets</a>, gestores de contenido, y hasta en <a title="Ver servicios de dise&ntilde;o y programaci&oacute;n de p&aacute;ginas web" href="/diseno-web.html">las p&aacute;ginas web que dise&ntilde;amos y desarrollamos</a> -&nbsp; y los clientes que tambi&eacute;n utilizan Google Apps for your Domain, tambi&eacute;n est&aacute;n muy contentos.<br />Razones que tenemos para ello son las explicadas en esta p&aacute;gina que ha creado Google, pero adem&aacute;s incluimos una serie de ventajas adicionales:<br />- Google Mail. Al poder configurarlo como servidor IMAP, es fant&aacute;stico, te permite sincronizar el correo desde cualquier dispositivo. Cuando leo un email en mi tel&eacute;fono m&oacute;vil, me lo marca como le&iacute;do en el resto de clientes de correo, si env&iacute;o un email, lo veo en la bandeja de enviados de todos mis clientes de correo. Es algo muy c&oacute;modo.<br />- Google Calendar. Permite tener calendarios de empresa para distintas tareas, por ejemplo, podemos tener el calendario de trabajos de dise&ntilde;o web, el cual est&aacute; compartido con dise&ntilde;adores y maquetadores, el calendario de entrega de proyectos que est&aacute; compartido con las personas encargadas de hacer seguimiento de proyectos, ... Adem&aacute;s, con cada cliente compartimos un calendario con los diferentes hitos del proyecto, conforme el proyecto va avanzando, el calendario se actualiza inmediatamente. Y todo sincronizado con el tel&eacute;fono m&oacute;vil, portatil, ...<br />- Google Docs. Qu&eacute; podemos decir de una herramienta ofim&aacute;tica que permite compartir con clientes y compa&ntilde;eros de trabajo hojas de c&aacute;lculo con presupuestos, documentos de texto con el seguimiento o la funcionalidad de un proyecto, etc.<br />- Google Talk. Una herramienta imprescindible en una intranet, permite mantener conversaciones privadas entre usuario y entre distintas sucursales de la empresa, con la gran ventaja de que todo el texto que hemos escrito nos lo env&iacute;a por email a nuestra cuenta de correo y de nuestro compa&ntilde;ero de charlas.<br /><br />...<br /><br />Y lo que cuentan en los v&iacute;deos colgados explican los siguientes temas:<br />- Cadenas de conversaci&oacute;n de Gmail. Aqu&iacute; vemos c&oacute;mo al iniciar un mensaje, las respuestas que este tiene se guardan todas agrupadas de forma que la conversaci&oacute;n est&eacute; toda en el mismo mensaje. Esta utilidad est&aacute; muy bien, aunque a veces genera peque&ntilde;as confusiones, es muy &uacute;til os lo aseguro.<br /> 
<object width="425" height="344" data="http://www.youtube.com/v/2LoeyPlAnvo&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/2LoeyPlAnvo&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="src" value="http://www.youtube.com/v/2LoeyPlAnvo&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" />
<param name="allowfullscreen" value="true" />
</object>
<br /><br />- &iquest;No hay conexi&oacute;n a internet? Sin problemas, usando Google Gears podemos trabajar con nuestro Google Mail y cuando tengamos conexi&oacute;n a internet, autom&aacute;ticamente lo detectar&aacute; y recibir&aacute; los mensajes pendientes de recibir, as&iacute; como enviar&aacute; aquellos que est&eacute;n pendientes de env&iacute;o.<br /> 
<object width="425" height="344" data="http://www.youtube.com/v/ymXEr9Zs37w&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/ymXEr9Zs37w&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="src" value="http://www.youtube.com/v/ymXEr9Zs37w&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" />
<param name="allowfullscreen" value="true" />
</object>
<br /><br />- AntiSpam. Una aplicaci&oacute;n anti-spam que funciona muy fina.<br /> 
<object width="425" height="344" data="http://www.youtube.com/v/q_CzSr3QL5Y&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/q_CzSr3QL5Y&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="src" value="http://www.youtube.com/v/q_CzSr3QL5Y&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" />
<param name="allowfullscreen" value="true" />
</object>
<br /><br />- Chat de video y voz.<br />
<object width="425" height="344" data="http://www.youtube.com/v/Ijy3HMDygzo&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash">
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="src" value="http://www.youtube.com/v/Ijy3HMDygzo&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" />
<param name="allowfullscreen" value="true" />
</object>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=18</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/la-vida-mas-facil-con-google-mail-gmail-y-google-apps-for-your-domain.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Texto a voz usando el elemento Audio de HTML5</title>
			<link>http://www.imaginanet.com/blog/texto-a-voz-usando-el-elemento-audio-de-html5.html</link>
			<guid>http://www.imaginanet.com/blog/texto-a-voz-usando-el-elemento-audio-de-html5.html</guid>
			<comments>http://www.imaginanet.com/blog/texto-a-voz-usando-el-elemento-audio-de-html5.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Tue, 15 Dec 2009 11:18:24 +0100</pubDate>
					<category><![CDATA[HTML5]]></category>
					<category><![CDATA[Accesibilidad]]></category>
					<description><![CDATA[Weston Ruter ha creado un mashup que enlaza el soporte de Audio en HTML5 en navegadores modernos (no more Internet Explorer please) con la nueva API de traducción de Google.Hace poco que Google Translate anunció la posibilidad de escuchar traducciones habladas en inglés via texto a voz (TTS - Text To Speech). Buscando en el...]]></description>
			<content:encoded><![CDATA[>Weston Ruter ha creado un mashup que <a title="Abrir en una ventana nueva" href="http://weston.ruter.net/projects/google-tts/" target="_blank">enlaza el soporte de Audio en HTML5</a> en navegadores modernos (no more Internet Explorer please) con la nueva <a title="Abrir en una ventana nueva" href="http://googleblog.blogspot.com/2009/11/new-look-for-google-translate.html" target="_blank">API de traducción de Google</a>.<br /><br />Hace poco que Google Translate anunció la posibilidad de escuchar traducciones habladas en inglés via texto a voz (TTS - Text To Speech). Buscando en el panel de red de Firebug de donde estaban llegando los datos TTS, se ve que el audio está en formato MP3 y se ejecuta con una consulta HTTP GET: http://translate.google.com/translate_tts?tl=en&q=text.<br /><br />Google Translate, advierte de que el servicio sólo está disponible para pequeñas traducciones a inglés, y el servicio web de texto a voz se limita a una cantidad de texto no superior a 100 caracteres.<br /><br />Otra restricción es que el servicio devuelve un error 404 si la petición incluye un Referer en el header (parece ser que el referer debe ser translate.google.com).<br /><br />Según dice Weston Ruter, creó este mashup viendo las limitaciones del web service TTS que sólo puede usarlo Google Translate, para utilizarlo desde cualquier navegador que admita el elemento Audio de HTML5. El mashup web utiliza este último y un atributo rel="noreferrer".<br /><br />Hay otros experimentos de texto a voz, <a title="Abrir en una ventana nueva" href="http://www.clochix.net/post/2009/03/14/Et-en-plus-il-parle" target="_blank">por ejemplo esta página</a>. Ójala que Google haga pública su API de traducción.<br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=17</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/texto-a-voz-usando-el-elemento-audio-de-html5.html</feedburner:origLink>
		</item>
				
		<item>
			<title>jQuery ColorPicker. Tres plugins que merece la pena tener en cuenta.</title>
			<link>http://www.imaginanet.com/blog/jquery-colorpicker-tres-plugins-de-jquery-que-merece-la-pena-tener-en-cuenta.html</link>
			<guid>http://www.imaginanet.com/blog/jquery-colorpicker-tres-plugins-de-jquery-que-merece-la-pena-tener-en-cuenta.html</guid>
			<comments>http://www.imaginanet.com/blog/jquery-colorpicker-tres-plugins-de-jquery-que-merece-la-pena-tener-en-cuenta.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Tue, 15 Dec 2009 10:47:35 +0100</pubDate>
					<category><![CDATA[Web 2.0]]></category>
					<category><![CDATA[JavaScript]]></category>
					<category><![CDATA[jQuery]]></category>
					<description><![CDATA[Todos alguna vez, hemos necesitado inclu&iacute;r campos de selecci&oacute;n de color (colorpicker) cuando realizamos zonas de administraci&oacute;n o backOffice.Est&aacute; muy pasado de moda y queda demasiado rudimentario incluir campos de texto donde se introduzca el c&oacute;digo hexadecimal del color deseado, adem&aacute;s,...]]></description>
			<content:encoded><![CDATA[>Todos alguna vez, hemos necesitado inclu&iacute;r campos de selecci&oacute;n de color (colorpicker) cuando realizamos zonas de administraci&oacute;n o backOffice.<br />Est&aacute; muy pasado de moda y queda demasiado rudimentario incluir campos de texto donde se introduzca el c&oacute;digo hexadecimal del color deseado, adem&aacute;s, de esta forma es un poco complicado explicar lo qu&eacute; significa el c&oacute;digo #ff0000. Si queremos hacer las cosas f&aacute;ciles de usar, y proporcionar al usuario algo f&aacute;cil e intuitivo, hay que incluir una aplicaci&oacute;n de selecci&oacute;n de color desde donde el usuario seleccione el color deseado de forma visual.<br /><br />En este art&iacute;culo mencionamos tres plugins de jQuery para la inclusi&oacute;n de un colorPicker en campos de formularios.<br /><br /><a title="Abrir en una ventana nueva" href="http://acko.net/dev/farbtastic" target="_blank">Farbtastic</a> est&aacute; escrito por Steven Writtens con licencia GPL. Si quieres m&aacute;s informaci&oacute;n sobre el plugin, <a title="Abrir en una ventana nueva" href="http://acko.net/dev/farbtastic" target="_blank">pulsa aqu&iacute;</a>. Es muy f&aacute;cil de incluir:<br />1. Incluir los archivos javaScript y CSS en el HTML de tu p&aacute;gina web.<br />
<pre class="code xml">
  <script src="/imaginanet/farbtastic.js" type="text/javascript"></script>
  <link rel="stylesheet" href="farbtastic.css" type="text/css" />
</pre>
<br />2. A&ntilde;adir un elemento que sea el contenedor del gr&aacute;fico y el campo de texto, y asignarles un identificador a cada uno de ellos.<br />
<pre class="code xml"><form>
  <input id="color" name="color" type="text" value="#123456" />
</form>
<div id="colorpicker"></div>
</pre>
3. A&ntilde;adir al evento ready() un controlador que inicializa el color picker y lo enlaza con el campo de texto.<br />
<pre class="code xml">
&lt;script type="text/javascript"&gt;
  $(document).ready(function() {
    $('#colorpicker').farbtastic('#color');
  });
&lt;/script&gt;
</pre>
<a title="Abrir en una ventana nueva" href="http://www.eyecon.ro/colorpicker/" target="_blank">ColorPicker</a>, est&aacute; programado por Stefan Petre. Con dos tipos de licencia, MIT y GPL. Puedes ver su p&aacute;gina web <a title="Abrir en una ventana nueva" href="http://www.eyecon.ro/colorpicker/" target="_blank">pulsando aqu&iacute;</a>.<br />Si quieres ver la gu&iacute;a r&aacute;pida de implementaci&oacute;n, pulsa aqu&iacute;. La inclusi&oacute;n en tu p&aacute;gina web es muy r&aacute;pida, cargas los archivos javaScript y CSS necesarios, creas un campo de texto que sea el que incluya el colorPicker y le asignas un identificador, a continuaci&oacute;n, en el evento ready(), lo inicializamos asign&aacute;ndoselo al identificador del campo creado.<br />
<pre class="code js">$('idCampoDeTexto').ColorPicker();
</pre>
Si queremos activarlo con opciones personalizadas:<br />
<pre class="code js">$('idCampoDeTexto').ColorPicker({option1:val1,opt2:val2,...});
</pre>
<br /><a title="Abrir en una ventana nueva" href="http://www.digitalmagicpro.com/jPicker/" target="_blank">jPicker</a> es una migraci&oacute;n del <a title="Abrir en una ventana nueva" href="http://johndyer.name/post/2007/09/PhotoShop-like-JavaScript-Color-Picker.aspx" target="_blank">plugin escrito para Prototype por John Dyers</a> (fant&aacute;stico plugin). Puedes ver m&aacute;s informaci&oacute;n sobre el plugin en la <a title="Abrir en una ventana nueva" href="http://www.digitalmagicpro.com/jPicker/" target="_blank">p&aacute;gina de jPicker</a>.<br /><br /><br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=16</wfw:commentRss>
			<slash:comments>2</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/jquery-colorpicker-tres-plugins-de-jquery-que-merece-la-pena-tener-en-cuenta.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Rendimiento de las URIs con datos</title>
			<link>http://www.imaginanet.com/blog/rendimiento-de-las-uris-con-datos.html</link>
			<guid>http://www.imaginanet.com/blog/rendimiento-de-las-uris-con-datos.html</guid>
			<comments>http://www.imaginanet.com/blog/rendimiento-de-las-uris-con-datos.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 14 Dec 2009 11:55:47 +0100</pubDate>
					<category><![CDATA[JavaScript]]></category>
					<category><![CDATA[CSS]]></category>
					<category><![CDATA[Navegadores]]></category>
					<description><![CDATA[En el blog de Ravelrumba, han hecho un peque&ntilde;o experimento con URIs de datos y su rendimiento en la carga de una p&aacute;gina web. En el estudio s&oacute;lo se ha utilizado Firefox 3.5 con la cach&eacute; vac&iacute;a.Los resultados no son interesantes por las respuestas que nos proporcionan, sino por las preguntas que...]]></description>
			<content:encoded><![CDATA[>En el <a title="Abrir en una ventana nueva" href="http://www.ravelrumba.com/blog/data-uris-for-css-images-more-tests-more-questions/" target="_blank">blog de Ravelrumba</a>, han hecho un peque&ntilde;o experimento con URIs de datos y su rendimiento en la carga de una p&aacute;gina web. En el estudio s&oacute;lo se ha utilizado Firefox 3.5 con la cach&eacute; vac&iacute;a.<br /><br />Los resultados no son interesantes por las respuestas que nos proporcionan, sino por las preguntas que hacen aparecer al respecto.<br /><br />En el experimento se han usado 31 im&aacute;genes y se han convertido a data URIs con <a title="Abrir en una ventana nueva" href="http://github.com/nzakas/cssembed" target="_blank">CSSEmbed</a>. En un caso adicional, se ha usado <a title="Abrir en una ventana nueva" href="http://duris.ru/" target="_blank">DURIS</a> para separar todas las URIs de datos en un archivo CSS aparte, as&iacute;, la etiqueta &lt;head&gt; se queda mucho m&aacute;s peque&ntilde;a y as&iacute;, carga m&aacute;s r&aacute;pido.<br /><br />Los tres escenarios planteados, llevan a un rendimiento muy parecido (usando HTTPWatch, los tiempos de carga son 1,35 s, 1,13 s y 1,13 s), viendo que los escenarios con data URI son un poco mejores. Es m&aacute;s interesante ver que un usuario que deja un comentario desde Sur&aacute;frica proporciona unos resultados bastante distintos: 4,04 s, 1,44 s, 1,92 s. En este caso, el retardo que existe para cargar 31 im&aacute;genes, puede conllevar estos tiempos de carga.<br /><br />Otro factor importante es la velocidad que percibe el usuario, al fin y al cabo, lo que m&aacute;s tiene que ver con el rendimiento. Los dos escenarios funcionan con la misma velocidad percibida, el segundo de ellos parece ser mejor ya que las im&aacute;genes se cargan en una hoja de estilos al final de la p&aacute;gina, despu&eacute;s de haberse cargado un script.<br /><br />El estudio saca a la luz preguntas sobre la carga de URIs con datos. Otro usuario del web, comenta que ha enviado un gr&aacute;fico que muestra como las URIs a im&aacute;genes tardan m&aacute;s en cargar que las im&aacute;genes descargadas de una forma convencional. Este es el tipo de cosas que ser&iacute;a bueno investigar.<br /><br />En el mismo blog se puede ver un estudio sobre el <a title="Abrir en una ventana nueva" href="http://www.ravelrumba.com/blog/a-look-at-how-browsers-download-and-render-css-background-images/" target="_blank">rendimiento de las im&aacute;genes de fondo</a> en distintos navegadores.]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=14</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/rendimiento-de-las-uris-con-datos.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Google: más búsquedas en tiempo real.</title>
			<link>http://www.imaginanet.com/blog/google-mas-busquedas-en-tiempo-real.html</link>
			<guid>http://www.imaginanet.com/blog/google-mas-busquedas-en-tiempo-real.html</guid>
			<comments>http://www.imaginanet.com/blog/google-mas-busquedas-en-tiempo-real.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 14 Dec 2009 11:22:11 +0100</pubDate>
					<category><![CDATA[Google]]></category>
					<category><![CDATA[Buscadores]]></category>
					<category><![CDATA[Web 2.0]]></category>
					<description><![CDATA[En abril de este año, Google empezó a mostrar resultados de búsquedas en Twitter en tiempo real y así ver lo que dice la gente en el mismo momento.Ahora, los usuarios podrán ver que en la parte superior de una búsqueda de resultados y siempre que tenga sentido para la búsqueda, actualizaciones en direto de los contenidos...]]></description>
			<content:encoded><![CDATA[>En abril de este año, Google empezó a mostrar resultados de búsquedas en Twitter en tiempo real y así ver lo que dice la gente en el mismo momento.<br />Ahora, los usuarios podrán ver que en la parte superior de una búsqueda de resultados y siempre que tenga sentido para la búsqueda, actualizaciones en direto de los contenidos que la gente escribe en Twitter, FriendFeed, Facebook, MySpace, FriendFeed, Jaiku e Identi.ca.<br /><br />Además, incluirá los artículos que se hayan rastreado para este tema en los medios que rastrea <a title="Abrir en una ventana nueva" href="http://news.google.com/" target="_blank">Google News</a> o el <a title="Abrir en una ventana nueva" href="http://blogsearch.google.com/" target="_blank">buscador de blogs de Google</a>.<br /><br />En <a title="Abrir en una ventana nueva" href="http://www.google.com/trends" target="_blank">Google Trends</a> se ha incluído también esta opción para ver estadísticas de las palabras que más se consultan en el buscador en tiempo real.<br /><br />En el video siguiente se ve como una búsqueda se va llenando de comentarios de Twitter que van dejando los usuarios sobre el tema:<br /><br /> 
<object width="425" height="344" data="http://www.youtube.com/v/WRkYmx4A9Do&color1=0xb1b1b1&color2=0xcfcfcf&hl=en_US&feature=player_embedded&fs=1" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/WRkYmx4A9Do&color1=0xb1b1b1&color2=0xcfcfcf&hl=en_US&feature=player_embedded&fs=1" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="src" value="http://www.youtube.com/v/WRkYmx4A9Do&color1=0xb1b1b1&color2=0xcfcfcf&hl=en_US&feature=player_embedded&fs=1" />
<param name="allowfullscreen" value="true" />
</object>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=12</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/google-mas-busquedas-en-tiempo-real.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Google Goggles. Usa imágenes para buscar en la web.</title>
			<link>http://www.imaginanet.com/blog/google-goggles--usa-imagenes-para-buscar-en-la-web-.html</link>
			<guid>http://www.imaginanet.com/blog/google-goggles--usa-imagenes-para-buscar-en-la-web-.html</guid>
			<comments>http://www.imaginanet.com/blog/google-goggles--usa-imagenes-para-buscar-en-la-web-.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Sat, 12 Dec 2009 17:29:13 +0100</pubDate>
					<category><![CDATA[Google]]></category>
					<category><![CDATA[Buscadores]]></category>
					<description><![CDATA[Como una imagen vale más que mil palabras, en Google acaban de lanzar un servicio de búsqueda a partir de una foto. Sácale una foto y te devolverá resultados relacionados con el tema.Sólo funciona en dispositivos con Android y reconoce lugares, obras de arte, logotipos… incluso, si estás en un lugar destacado, sólo has de...]]></description>
			<content:encoded><![CDATA[>Como una imagen vale más que mil palabras, en Google acaban de lanzar un <a title="Abrir en ventana nueva. Google goggles." href="http://www.google.com/mobile/goggles/" target="_blank">servicio de búsqueda a partir de una foto</a>. Sácale una foto y te devolverá resultados relacionados con el tema.<br />Sólo funciona en dispositivos con Android y reconoce lugares, obras de arte, logotipos… incluso, si estás en un lugar destacado, sólo has de activar el GPS, mandar la localización y se te devolverá la información sobre el lugar donde te encuentres..<br /><br />    
<object width="560" height="340" data="http://www.youtube.com/v/Hhgfz0zPmH4&hl=es_ES&fs=1&rel=0" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/Hhgfz0zPmH4&hl=es_ES&fs=1&rel=0" />
<param name="allowFullScreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="src" value="http://www.youtube.com/v/Hhgfz0zPmH4&hl=es_ES&fs=1&rel=0" />
<param name="allowfullscreen" value="true" />
</object>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=11</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/google-goggles--usa-imagenes-para-buscar-en-la-web-.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Búsquedas personalizadas para todos los usuarios.</title>
			<link>http://www.imaginanet.com/blog/busquedas-personalizadas-para-todos-los-usuarios-.html</link>
			<guid>http://www.imaginanet.com/blog/busquedas-personalizadas-para-todos-los-usuarios-.html</guid>
			<comments>http://www.imaginanet.com/blog/busquedas-personalizadas-para-todos-los-usuarios-.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 14 Dec 2009 11:34:54 +0100</pubDate>
					<category><![CDATA[Google]]></category>
					<category><![CDATA[SEO]]></category>
					<category><![CDATA[Web 2.0]]></category>
					<description><![CDATA[Hace unos a&ntilde;os, nac&iacute;an las b&uacute;squedas personalizadas de Google, en donde se comenzaba a modificar los resultados en funci&oacute;n de los intereses del usuario. Un a&ntilde;o m&aacute;s tarde, se comenzaba a almacenar y a mostrar el historial de b&uacute;squedas de cada usuario que se hab&iacute;a registrado...]]></description>
			<content:encoded><![CDATA[><p>Hace unos a&ntilde;os, nac&iacute;an las b&uacute;squedas personalizadas de Google, en donde se comenzaba a modificar los resultados en funci&oacute;n de los intereses del usuario. Un a&ntilde;o m&aacute;s tarde, se comenzaba a almacenar y a mostrar el historial de b&uacute;squedas de cada usuario que se hab&iacute;a registrado previamente con una cuenta de usuario de Google.</p>
<p>El buscador ven&iacute;a almacenando, por cuestiones t&eacute;cnicas, las b&uacute;squedas que se realizan desde cada una de las direcciones IP que se conectan al servicio. Sin embargo, la compa&ntilde;&iacute;a ha anunciado oficialmente que el historial de b&uacute;squedas se va a almacenar durante 6 meses para todos los usuarios, y no se relacionar&aacute; con nuestra direcci&oacute;n IP, sino con una 'cookie' de nuestro navegador web, incluso cuando el usuario no dispone de cuenta en Google.</p>
<p>Con esta 'cookie' (que se puede borrar en cualquier momento), Google va a distinguirnos no ya por nuestra direcci&oacute;n IP, sino por el navegador web que utilicemos. De esta manera, aunque nuestro proveedor de Internet nos cambie la direcci&oacute;n IP, o aunque estemos con nuestro port&aacute;til en otro pa&iacute;s, Google va a saber durante 180 d&iacute;as las b&uacute;squedas que hemos realizado.</p>
<p>El objetivo es, seg&uacute;n <a title="Abrir en una ventana nueva" href="http://googleblog.blogspot.com/2009/12/personalized-search-for-everyone.html" target="_blank">este post oficial</a> personalizar nuestras b&uacute;squedas, y ofrecernos los resultados m&aacute;s adecuados a nuestros gustos y preferencias. As&iacute;, por ejemplo, si cuando buscamos 'barcelona' siempre acabamos haciendo click en las p&aacute;ginas de hoteles, la siguiente vez que lo consultemos quiz&aacute; veamos sitios web de hoteles en las primeras posiciones.</p>
<p>Esta nueva caracter&iacute;stica del buscador nos trae consigo de nuevo la duda acerca de si Google va a tener en cuenta estos clicks para modificar los resultados tambi&eacute;n del resto de usuarios y cambiar el posicionamiento general de las b&uacute;squedas. Pero tambi&eacute;n traer&aacute; consigo una importante pol&eacute;mica sobre la privacidad de todos nosotros, puesto que desde ahora, en caso de que queramos cuidar un poco m&aacute;s los datos expuestos ante Google, habr&aacute; que preocuparse de eliminar la 'cookie' de 'google.com' (o el dominio de la versi&oacute;n local que utilicemos).</p>
<p>Para borrar esta 'cookie' existen varias soluciones, para Firefox, est&aacute;n las extensiones '<a title="Abrir en una ventana nueva" href="https://addons.mozilla.org/en-US/firefox/addon/10354" target="_blank">Google-anon</a>' o '<a title="Abrir en una ventana nueva" href="https://addons.mozilla.org/en-US/firefox/addon/1243" target="_blank">Cookie Manager</a>', <a title="Abrir en una ventana nueva" href="http://support.microsoft.com/kb/278835" target="_blank">este link</a> sobre las cookies en MS IExplorer, o <a title="Abrir en una ventana nueva" href="http://www.aboutcookies.org/Default.aspx?page=2" target="_blank">esta p&aacute;gina</a> m&aacute;s gen&eacute;rica sobre 'cookies'.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=13</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/busquedas-personalizadas-para-todos-los-usuarios-.html</feedburner:origLink>
		</item>
				
		<item>
			<title>HighCharts. Un API de gráficos bastante buena.</title>
			<link>http://www.imaginanet.com/blog/highcharts-un-api-de-graficos-bastante-buena.html</link>
			<guid>http://www.imaginanet.com/blog/highcharts-un-api-de-graficos-bastante-buena.html</guid>
			<comments>http://www.imaginanet.com/blog/highcharts-un-api-de-graficos-bastante-buena.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 14 Dec 2009 15:46:27 +0100</pubDate>
					<category><![CDATA[JavaScript]]></category>
					<category><![CDATA[jQuery]]></category>
					<description><![CDATA[Todos queremos mejores librer&iacute;as javascript de gr&aacute;ficos. Dojo tiene una buena opci&oacute;n que es Protovis, y por ah&iacute; hay muchas librer&iacute;as (deja un comentario con tu favorita).La &uacute;ltima en aparecer es HighCharts que usa tanto jQuery como MooTools para las tareas JavaScript m&aacute;s frecuentes....]]></description>
			<content:encoded><![CDATA[>Todos queremos mejores librer&iacute;as javascript de gr&aacute;ficos. Dojo tiene una buena opci&oacute;n que es <a title="Abrir en una ventana nueva" href="http://vis.stanford.edu/protovis/" target="_blank">Protovis</a>, y por ah&iacute; hay muchas librer&iacute;as (deja un comentario con tu favorita).<br />La &uacute;ltima en aparecer es <a title="Abrir en una ventana nueva" href="http://highcharts.com/" target="_blank">HighCharts</a> que usa tanto jQuery como MooTools para las tareas JavaScript m&aacute;s frecuentes. Adem&aacute;s, Internet Explorer necesita ExCanvas que emula al elemento Canvas.<br />Un ejemplo de gr&aacute;fica:<br />
<pre class="code js">var chart1 = new Highcharts.Chart({
         chart: {
            renderTo: 'chart-container-1',
            defaultSeriesType: 'bar'
         },
         title: {
            text: 'Fruit Consumption'
         },
         xAxis: {
            categories: ['Apples', 'Bananas', 'Oranges]
         },
         yAxis: {
            title: {
               text: 'Fruit eaten'
            }
         },
         series: [{
            name: 'Jane',
            data: [1, 0, 4]
         }, {
            name: 'John',
            data: [5, 7, 3]
         }]
      });
</pre>
<br />Devuelve algo as&iacute;:<br /><br /><img title="HighCharts ejemplo" src="/blog_files/images/highcharts.png" alt="HighCharts ejemplo" />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=15</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/highcharts-un-api-de-graficos-bastante-buena.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Google Analytics desbloquea la carga de webs lanzando el modo asíncrono (Async Mode)</title>
			<link>http://www.imaginanet.com/blog/google-analytics-desbloquea-la-carga-de-webs-lanzando-el-modo-asincrono-async-mode.html</link>
			<guid>http://www.imaginanet.com/blog/google-analytics-desbloquea-la-carga-de-webs-lanzando-el-modo-asincrono-async-mode.html</guid>
			<comments>http://www.imaginanet.com/blog/google-analytics-desbloquea-la-carga-de-webs-lanzando-el-modo-asincrono-async-mode.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed,  2 Dec 2009 16:10:25 +0100</pubDate>
					<category><![CDATA[JavaScript]]></category>
					<category><![CDATA[Google Analytics]]></category>
					<description><![CDATA[Gran noticia la que acabo de leer que Google Analytics lanza un modo de seguimiento as&iacute;ncrono "Google analytics launches Asynchronous Tracking" (click aqu&iacute; para ver art&iacute;culo original).Al fin nuestro navegador no se va a enganchar cargando el c&oacute;digo JavaScript.El sistema har&aacute; que las webs...]]></description>
			<content:encoded><![CDATA[>Gran noticia la que acabo de leer que Google Analytics lanza un modo de seguimiento as&iacute;ncrono "<em>Google analytics launches Asynchronous Tracking</em>" (<a title="Abrir en una ventana nueva" href="http://googlecode.blogspot.com/2009/12/google-analytics-launches-asynchronous.html" target="_blank">click aqu&iacute; para ver art&iacute;culo original</a>).<br /><br />Al fin nuestro navegador no se va a enganchar cargando el c&oacute;digo JavaScript.<br /><br /><strong>El sistema har&aacute; que las webs funcionen m&aacute;s r&aacute;pido:</strong><br />El mayor problema de cargar archivos JavaScript es que bloquea el renderizado de la p&aacute;gina web y la descarga de otros recursos. En el nuevo modelo as&iacute;ncrono de Google Analytics, se utiliza el elemento Script del DOM.<br />Google Analytics, con su archivo ga.js, es un ejemplo perfecto de un script que debiera cargarse de forma as&iacute;ncrona, ya que no a&ntilde;ade contenido alguno a la p&aacute;gina, con lo cual, ser&iacute;a ideal cargarlo sin bloquear las im&aacute;genes y hojas de estilo que har&aacute;n que los usuarios vean lo que realmente han venido a ver: nuestra p&aacute;gina web.<br /><strong><br />Se ha mejorado la estabilidad:</strong><br />&iquest;Qu&eacute; pasa si un script tarda mucho tiempo en cargarse, o falla su carga? El usuario se encuentra ante una p&aacute;gina en blanco, ya que los scripts bloquean el renderizado de la web. Aunque Google Analytics tiene una infraestructura muy grande tras &eacute;l, cualquier recurso, sobre todo de terceros, tiene que a&ntilde;adirse con cautela. Es una gran noticia que GA est&aacute; proporcionando patrones que permite el renderizado de las webs mientras se carga ga.js.&nbsp;<br /><br /><strong>&iquest;Qu&eacute; hay que hacer para incluir ga.js en modo as&iacute;ncrono?</strong> cambia tu script para que sea de la forma siguiente:
<pre class="code js">var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
   var ga = document.createElement('script');
   ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
   ga.setAttribute('async', 'true');
   document.documentElement.firstChild.appendChild(ga);
})();
</pre>
<br /> 
<ul>
<li>L&oacute;gicamente, tienes que sustituir "UA-XXXXX-X" por tu ID.</li>
<li>Al cargarse ga.js de forma as&iacute;ncrona, tiene que existir una forma para que algunas funciones de GA se puedan utilizar cuando el c&oacute;digo se termina de cargar. Esto se hace introduciendo comandos en la cola del objeto de Google Analytics, _gaq.</li>
<li>Una vez que todos los comandos callback se han puesto en cola, se carga el script ga.js. Esto se empaqueta en una funci&oacute;n as&iacute;ncrona para as&iacute; evitar conflictos de namespace.</li>
<li>Se crea un elemento "script" y su fuente "src" se pone al valor correcto de la URL de ga.js. Mirando m&aacute;s alla, en el soporte que se incluye en HTML5 a los scripts as&iacute;ncronos, el atributo "async" se pone a "true", muy bueno! La ventaja m&aacute;s importante es que le dice al navegador que los siguientes scripts se pueden ejecutar de forma inmediata (no tienen que esperar a que se carge ga.js). La &uacute;ltima l&iacute;nea a&ntilde;ade el elemento script al DOM. Esto es lo que ejecuta la descarga de ga.js. En muchos c&oacute;digos se hace document.getElementsByTagName(&rdquo;head&rdquo;)[0].appendChild, pero esto falla si el documento no tiene elemento head. Esta forma de hacerlo, es m&aacute;s robusta.</li>
</ul>
<br />
<p>&nbsp;</p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=9</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/google-analytics-desbloquea-la-carga-de-webs-lanzando-el-modo-asincrono-async-mode.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Galería de fotos polaroid, sólo usando CSS 3</title>
			<link>http://www.imaginanet.com/blog/galeria-de-fotos-polaroid--solo-usando-css-3.html</link>
			<guid>http://www.imaginanet.com/blog/galeria-de-fotos-polaroid--solo-usando-css-3.html</guid>
			<comments>http://www.imaginanet.com/blog/galeria-de-fotos-polaroid--solo-usando-css-3.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed,  2 Dec 2009 10:55:49 +0100</pubDate>
					<category><![CDATA[Web 2.0]]></category>
					<category><![CDATA[JavaScript]]></category>
					<category><![CDATA[CSS]]></category>
					<category><![CDATA[jQuery]]></category>
					<description><![CDATA[Viendo la galer&iacute;a de fotos con estilo polaroid que han creado en el blog de Tutorialzine, la cual utiliza jQuery y un m&iacute;nimo CSS3, que es una sombra "box-shadow" y una rotaci&oacute;n que utiliza "-webkit-transform". As&iacute; hemos creado una galer&iacute;a de fotos similar pero que &uacute;nicamente utiliza CSS 3,...]]></description>
			<content:encoded><![CDATA[>Viendo la galer&iacute;a de fotos con estilo polaroid que han creado en el <a title="Abrir en ventana nueva" href="http://tutorialzine.com/2009/11/hovering-gallery-css3-jquery/" target="_blank">blog de Tutorialzine</a>, la cual utiliza jQuery y un m&iacute;nimo CSS3, que es una sombra "box-shadow" y una rotaci&oacute;n que utiliza "-webkit-transform". <br />As&iacute; hemos creado una galer&iacute;a de fotos similar pero que &uacute;nicamente utiliza CSS 3, pero aplicando las diferentes opciones que permite este.<br /><br />El c&oacute;digo XHTML creado, &uacute;nicamente consta de una lista de im&aacute;genes (ul &gt; li) con su respectivo pie de imagen:
<pre class="code"><ul class="thumb">
    <li>
        <img src="/imaginanet/images/photo_1.jpg" alt="" width="480" height="340" />Globos
    </li>
    <li>
        <img src="/imaginanet/images/photo_2.jpg" alt="" width="480" height="332" />Coche
    </li>
    <li>
        <img src="/imaginanet/images/photo_3.jpg" alt="" width="480" height="321" />Niebla
    </li>
    <li>
        <img src="/imaginanet/images/photo_4.jpg" alt="" width="480" height="315" />Molino de viento
    </li>
    <li>
        <img src="/imaginanet/images/photo_5.jpg" alt="" width="480" height="324" />Bosque
    </li>
</ul>
</pre>
La hoja de estilos, la teneis <a title="Ver hoja de estilo en ventana nueva" href="/blog_files/css/galeria-polaroid.css" target="_blank">aqu&iacute;</a>, en ella, lo m&aacute;s destacable es:<br />Por un lado, tenemos el contenedor de todas las im&aacute;genes (UL), al cual le aplicamos un gradiente de fondo utilizando "<em>-webkit-gradient</em>" en la propiedad "<em>background</em>" del elemento. Aplicamos un gradiente circular o radial con una posici&oacute;n y tama&ntilde;o, que va de un gris m&aacute;s oscuro, a un gris m&aacute;s claro.
<pre class="code css">ul.thumb {
   position: relative;
   list-style: none;
   background: -webkit-gradient(radial, 45 45, 50, 50 10, 640, from(#555), to(#222)) !important;
   background: #666;
}
</pre>
<br />Tambi&eacute;n tenemos el posicionamiento y la rotaci&oacute;n que damos a cada LI, con su respectiva imagen y texto. Posicionamos el elemento centrado tanto en altura como en anchura, lo redimensionamos y le aplicamos sombra, adem&aacute;s, es importante tener en cuenta que este elemento tiene un efecto "ease-in-out" en el "-webkit-transition" con una duraci&oacute;n de 3 segundos, es el que hace que en WebKit, se amplien y reduzcan con el efecto de zoom . Adem&aacute;s, con el selector "<em>:nth-child()</em>", cambiamos la posici&oacute;n y giramos cada imagen, adem&aacute;s de aplicar a cada imagen una sombra.<br />
<pre class="code css">ul.thumb li {
   position: absolute;
   top: 50%;
   left: 50%;
   padding: 6px 6px 24px 6px;
   background: #FFF;
   width: 150px;
   height: 130px;
   -moz-box-shadow:1px 1px 6px #222;
   -webkit-box-shadow:1px 1px 6px #222;
   box-shadow:1px 1px 6px #222;
   -webkit-transition: all 3s ease-in-out;
   z-index: 0;
}
ul.thumb li img {
   width: 100%;
   height: 100%;
}
ul.thumb li:nth-child(1) {
   margin-top: -130px;
   margin-left: -130px;
   -moz-transform: rotate(30deg);
   -webkit-transform: rotate(30deg);
   transform: rotate(30deg);
}
</pre>
<br />Para terminar, tambi&eacute;n es muy destacable el estilo que aplicamos al estado ":hover" de cada imagen, en este, utilizamos "-webkit-transform" para cambiar la rotaci&oacute;n y poner la imagen completamente horizontal:
<pre class="code css">ul.thumb li:hover{
   font-size: 1.3em;
   z-index: 10;
   width: 480px;
   height: 322px;
   margin-top: -151px;
   margin-left: -240px;
   -moz-box-shadow:8px 8px 24px #111;
   -webkit-box-shadow:8px 8px 24px #111;
   box-shadow:8px 8px 24px #111;
   -moz-transform: rotate(0deg);
   -webkit-transform: rotate(0deg);
   transform: rotate(0deg);
}
</pre>
<br />La galer&iacute;a de fotos <a title="Ver demo de galer&iacute;a" href="/blog_files/galeria-polaroid.htm" target="_blank">podeis visualizarla aqu&iacute;</a> y es &uacute;nicamente funcional desde FireFox 3.5 (no veremos efecto de ampliaci&oacute;n alguno) y desde navegadores utilizando &uacute;ltimas versiones de WebKit, como por ejemplo Safari y Google Chrome (en estos, el efecto de ampliaci&oacute;n funciona gracias a -webkit-transition).<br /><br />La raz&oacute;n por la que no funcionar&aacute; en Internet Explorer (cualquier versi&oacute;n), es que este, ni en su &uacute;ltima versi&oacute;n cumple con el estandar CSS 3, por ejemplo, el selector :nth-child(N) no es reconocido por IE.<br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=7</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/galeria-de-fotos-polaroid--solo-usando-css-3.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Lo más buscado durante 2009</title>
			<link>http://www.imaginanet.com/blog/lo-mas-buscado-durante-2009.html</link>
			<guid>http://www.imaginanet.com/blog/lo-mas-buscado-durante-2009.html</guid>
			<comments>http://www.imaginanet.com/blog/lo-mas-buscado-durante-2009.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed,  2 Dec 2009 17:39:31 +0100</pubDate>
					<category><![CDATA[Buscadores]]></category>
					<category><![CDATA[Google]]></category>
					<description><![CDATA[Se ha publicado la informaci&oacute;n con las palabras que m&aacute;s se han buscado o consultado en los motores de b&uacute;squeda m&aacute;s populares.Como seguro que a cada uno le interesa una cosa distinta, os dejo una lista de enlaces a cada uno de los casos:AOLAskBingGoogle Espa&ntilde;aGoogleYahoo!Yahoo! Respuestas]]></description>
			<content:encoded><![CDATA[>Se ha publicado la informaci&oacute;n con las palabras que m&aacute;s se han buscado o consultado en los motores de b&uacute;squeda m&aacute;s populares.<br /><br />Como seguro que a cada uno le interesa una cosa distinta, os dejo una lista de enlaces a cada uno de los casos:<br /><a title="Abrir en una ventana nueva" href="http://hot.aol.com/" target="_blank">AOL</a><br /><a title="Abrir en una ventana nueva" href="http://sp.ask.com/2009/topquestions" target="_blank">Ask</a><br /><a title="Abrir en una ventana nueva" href="http://www.bing.com/community/blogs/search/archive/2009/11/30/top-bing-searches-in-2009.aspx" target="_blank">Bing</a><br /><a title="Abrir en una ventana nueva" href="http://www.google.com/intl/es_es/press/zeitgeist2009/index.html" target="_blank">Google Espa&ntilde;a</a><br /><a title="Abrir en una ventana nueva" href="http://www.google.com/intl/en_us/press/zeitgeist2009/index.html" target="_blank">Google</a><br /><a title="Abrir en una ventana nueva" href="http://yearinreview.yahoo.com/" target="_blank">Yahoo!</a><br /><a title="Abrir en una ventana nueva" href="http://yanswersblog.com/index.php/archives/2009/11/30/download-the-2009-answers-highlights-book/" target="_blank">Yahoo! Respuestas</a><br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=10</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/lo-mas-buscado-durante-2009.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Aumenta la longitud de búsqueda. Sobre todo en Google.</title>
			<link>http://www.imaginanet.com/blog/aumenta-la-longitud-de-busqueda--sobre-todo-en-google-.html</link>
			<guid>http://www.imaginanet.com/blog/aumenta-la-longitud-de-busqueda--sobre-todo-en-google-.html</guid>
			<comments>http://www.imaginanet.com/blog/aumenta-la-longitud-de-busqueda--sobre-todo-en-google-.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Wed,  2 Dec 2009 12:18:42 +0100</pubDate>
					<category><![CDATA[Buscadores]]></category>
					<category><![CDATA[SEO]]></category>
					<description><![CDATA[En el blog que Alan Long tiene en Hitwise, han sacado un nuevo estudio sobre la longitud de las b&uacute;squedas en los distintos buscadores web.En el informe se ve c&oacute;mo la longitud de las frases de b&uacute;squeda est&aacute; aumentando paulatinamente, y sobre todo, donde m&aacute;s est&aacute; aumentando es en Google....]]></description>
			<content:encoded><![CDATA[>En el blog que <a title="Ver en ventana nueva" href="http://weblogs.hitwise.com/alan-long/2009/11/searches_getting_longer.html" target="_blank">Alan Long tiene en Hitwise</a>, han sacado un nuevo estudio sobre la longitud de las b&uacute;squedas en los distintos buscadores web.<br /><br />En el informe se ve c&oacute;mo la longitud de las frases de b&uacute;squeda est&aacute; aumentando paulatinamente, y sobre todo, donde m&aacute;s est&aacute; aumentando es en Google. Esto &uacute;ltimo nos lleva a pensar si realmente esto est&aacute; asociado a la cada vez menor calidad de los resultados que obtenemos al realizar b&uacute;squedas con el buscador.<br />Y es que la larga cola est&aacute; comenzando a entrar en la mente de los usuarios, que pasan de querer algo poco definido a realizar consultas cada vez m&aacute;s elaboradas para llegar a la informaci&oacute;n que realmente quieren conseguir.<br /><br />El informe, adem&aacute;s de otros detalles, nos revela que la longitud de las consultas ha aumentado poco a poco con el paso del tiempo, y conforme aumenta el n&uacute;mero de personas que se erigen como profetas del posicionamiento en buscadores, y &uacute;nicamente buscan un posicionamiento, pero que para nada creo que se pueda llamar org&aacute;nico, sino posicionamiento que &uacute;nicamente genere tr&aacute;fico. No importa si el tr&aacute;fico generado es de buena, mediana o mala calidad.<br /><br />En mi opini&oacute;n, la longitud de b&uacute;squeda aumenta por una simple raz&oacute;n, los resultados tienen mucho posicionamiento, aunque el posicionamiento lo &uacute;nico que busque sea el click y no el cliente de calidad, esto, hace que los resultados iniciales tengan cada vez menos relevancia, y el usuario cada vez tenga que aumentar el n&uacute;mero de palabras de b&uacute;squeda para hacerla m&aacute;s espec&iacute;fica para lo que est&aacute; buscando.<br /><br />Tengo que decir adem&aacute;s, que es curioso ver c&oacute;mo la calidad del tr&aacute;fico generado por otros buscadores como puede ser Yahoo, es mucho mejor, y los usuarios captados a trav&eacute;s de estos, tienen un perfil de usuario que se ajusta much&iacute;simo mejor al perfil deseado.<br /><br />Para terminar, os incluyo una tabla resumen de las longitudes de b&uacute;squeda:<br /><br /><img title="Longitud de la cadena de b&uacute;squeda, tabla resumen." src="http://www.imaginanet.com/blog_files/images/srchtermlenght_xtended.png" alt="Longitud de la cadena de b&uacute;squeda, tabla resumen." /><br /><br /><br />El siguiente gr&aacute;fico muestra la longitud media de b&uacute;squeda, para todos los buscadores en general:<br /><br /><a onclick="window.open('/blog_files/images/searchtermlength.png','popup','width=849,height=450,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="/blog_files/images/searchtermlength.png"><img title="Longitud de la cadena de b&uacute;squeda, media para todos los buscadores." src="http://www.imaginanet.com/blog_files/images/searchtermlength_small.png" alt="Longitud de la cadena de b&uacute;squeda, media para todos los buscadores." /></a><br /><br /><br />Mientras que en la siguiente, se muestra para los buscadores m&aacute;s importantes. En &eacute;l se puede apreciar c&oacute;mo dependiendo del buscador, hay bastante diferencia en longitudes de cadena de b&uacute;squeda:<br /><br /><a onclick="window.open('/blog_files/images/sengines_length.png','popup','width=849,height=450,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="/blog_files/images/sengines_length.png"><img title="Longitud de la cadena de b&uacute;squeda, principales buscadores." src="http://www.imaginanet.com/blog_files/images/sengines_length_sml.png" alt="Longitud de la cadena de b&uacute;squeda, principales buscadores." width="429" height="222" /></a>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=8</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/aumenta-la-longitud-de-busqueda--sobre-todo-en-google-.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Haciendo páginas web atractivas y usables.</title>
			<link>http://www.imaginanet.com/blog/haciendo-paginas-web-atractivas-y-usables.html</link>
			<guid>http://www.imaginanet.com/blog/haciendo-paginas-web-atractivas-y-usables.html</guid>
			<comments>http://www.imaginanet.com/blog/haciendo-paginas-web-atractivas-y-usables.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Tue, 24 Nov 2009 10:05:37 +0100</pubDate>
					<category><![CDATA[Web 2.0]]></category>
					<category><![CDATA[XHTML]]></category>
					<category><![CDATA[CSS]]></category>
					<category><![CDATA[Ajax]]></category>
					<description><![CDATA[El presente artículo ha sido traducido del publicado en http://www.lazycat.org/postcards/  Diseños abiertos y elegantes, menores costes de ancho de banda y un mantenimiento mucho más fácil. ¿Os gusta la idea? Leed este artículo para conocer pequeños trucos que puedes aplicar al código, diseño y contenidos de tus páginas...]]></description>
			<content:encoded><![CDATA[><p style="display: inline; float: left;"><img style="display: inline; float: left; margin-right: 10px;" title="Haciendo páginas web atractivas y usables." src="/ftp/articulos_web/nakkeTattis.jpg" alt="Haciendo páginas web atractivas y usables." width="232" height="310" /> El presente artículo ha sido traducido del publicado en <a href="http://www.lazycat.org/postcards/">http://www.lazycat.org/postcards/</a><br /> <br /> Diseños abiertos y elegantes, menores costes de ancho de banda y un mantenimiento mucho más fácil.<br /> <br />¿Os gusta la idea? Leed este artículo para conocer pequeños trucos que puedes aplicar al código, diseño y contenidos de tus páginas web, y si alguno de los sitios web que visitas normalmente no da la talla, ¿porqué no comentarles que pueden hacer un cambio limpio, rápido y con muchas ventajas sobre lo que tiene?<br /> <br />Muchas páginas web incluyen enlaces a artículos relacionados y más información. Envíales URLs que creas les puedan ayudar y pienses que son útiles.</p>
<h3>Hojas de estilo alternativas</h3>
Son distintos puntos de vista. Añadir la posibilidad de visualizar una página web en formato impreso, o por ejemplo, en terminales de mano (pocket pc, palm os, ...), hacen que un sitio web sea visible por una mayor audiencia y así, aumente la satisfacción del cliente. De esta forma, los usuarios no tienen porque buscar una versión para imprimir (si existe claro) ya que las hojas de estilo para imprimir se cargan de forma automática en cualquier navegador web. <br /> Si está vendiendose algo, una disposición dedicada a la impresión, ahorra el esfuerzo y coste de crear y mantener archivos PDF independientes. Las hojas de estilo para medio impreso, pueden incluir reglas que impriman las urls junto con los enlaces, expandan los acrónimos y muestren la información de copyright. <br /> Existen hojas de estilo para TV, proyectores, lectores de texto, ... <br />
<h3>Fondos</h3>
Una imagen de fondo puede ser la diferencia entre una página web que atraiga todas las miradas y una página web que genere dolores de tripa. La elección de imagenes que puedan estirarse con el fondo, es esencial, así como el uso de colores apropiados y el hecho de asegurarse de que ls imágenes de fondo permanecen en el fondo.<br /> Si tienes dudas, quítala: un diseño simple y limpio, a veces funciona mejor que un diseño complejo y visualmente rico en grafismos. A veces, una página web diseñada de forma pobre da peor imagen que no tener página web.<br /> Hay que recordad que cualquier elemento puede tener una imagen de fondo o color de fondo si usa CSS, aprovechar esta ventaja permite la construcción de webs ricas en grafismo.<br />
<h3>Elección de los colores</h3>
Con los colores, como con muchas otras cosas, cuanto menos, a veces es mejor. Lo ideal es elegir entre tres y cinco colores para un diseño o para una sección del sitio web si se desea que estas sean distintas.<br /> Hay que ser cuidadoso con las connotaciones de los colores y amoldarlos a la audiencia que se espera atraer. Por ejemplo los visitantes del este pueden estar buscando colores vivos como rojos y amarillos para estar cómodos, por otro lado, los visitantes de occidente los pueden encontrar demasiado chillones para sus ojos e incluso ofencivos. Por ejemplo, Ladbrokes, amolda su esquema de colores a la procedencia de sus visitantes; si quieres una página web global, esta es posible.<br />
<h3>Tablas</h3>
Si todavia alguien está diseñando páginas web con tablas HTML, ¿cuantos años llevas perdido por el mundo? ¿dónde has estado? La comida ya se ha terminado y también te has perdido los postres, esto hace que no conozcas lo fácil y cómodo que puede ser hacer páginas web con CSS (hojas de estilo). Cuando alguien quiere atornillar un tornillo, que usa, ¿un martillo o un destornillador? Por la misma razón, porqué usar tablas HTML para maquetar páginas web. <br /> Es aconsejable diseñar de acuerdo con las especificaciones web estandares del momento, y además, conseguiras mayor control de la maqueta si la haces usando hojas de estilo. Las páginas web modernas estan basadas en los estandards web, cargan mucho más rápido, se ven más bonitas y te harán ahorrar dinero. Si tu jefe se entera de que no has estado cenando, ve pensando la explicación que vas a darle.]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=5</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/haciendo-paginas-web-atractivas-y-usables.html</feedburner:origLink>
		</item>
				
		<item>
			<title>19 consejos para construir páginas web</title>
			<link>http://www.imaginanet.com/blog/19-consejos-para-construir-paginas-web.html</link>
			<guid>http://www.imaginanet.com/blog/19-consejos-para-construir-paginas-web.html</guid>
			<comments>http://www.imaginanet.com/blog/19-consejos-para-construir-paginas-web.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 23 Nov 2009 20:25:48 +0100</pubDate>
					<category><![CDATA[Web 2.0]]></category>
					<description><![CDATA[Esto significa, que no pretendas re-inventar la navegaci&oacute;n por los sitios web. Pon las cosas a la izquierda, arriba, abajo, donde quieras, pero no reinventes la forma en que la gente interactua con entornos o interfaces digitales si lo que quieres es vender tu marca, tus productos o tus servicios. No confundas al usuario,...]]></description>
			<content:encoded><![CDATA[>Esto significa, que no pretendas re-inventar la navegaci&oacute;n por los sitios web. Pon las cosas a la izquierda, arriba, abajo, donde quieras, pero no reinventes la forma en que la gente interactua con entornos o interfaces digitales si lo que quieres es vender tu marca, tus productos o tus servicios. No confundas al usuario, puede sentirse mal y abandonar la web.<br />
<h3>Introducci&oacute;n</h3>
Este art&iacute;culo se ha extraido del original (<a href="http://www.josiahcole.com/2007/02/14/a-webmasters-19-commandments/">click aqu&iacute;</a>) titulado <a href="http://www.josiahcole.com/2007/02/14/a-webmasters-19-commandments/"><em>19 Things NOT To Do When Building a Website</em></a><em>.</em> El art&iacute;culo es muy did&aacute;ctico y creemos que expone cada uno de los casos con criterio y desde el punto de vista de la usabilidad.<br /> El autor ha recopilado una peque&ntilde;a lista de reglas b&aacute;sicas y fundamentales que todo webmaster debe tener en cuenta a la hora de desarrollas un sitio web que pretenda llegar a su p&uacute;blico con un m&iacute;nimo de &eacute;xito. Esta lista tambi&eacute;n pueden usarla las empresas que esten pensando en la creaci&oacute;n o re-estructuraci&oacute;n de su sitio web.<br />
<h3>No redimensionar la ventana del navegador</h3>
No cambiar el tama&ntilde;o de la ventana del navegador del usuario. Todos sabemos que se puede modificar el tama&ntilde;o de la ventana del usuario, y sabemos lo bien que uno se siente cuando tras poner un peque&ntilde;o trozo de c&oacute;digo Javascript ocurre un <em>milagro</em> que redimensiona la ventana al tama&ntilde;o que queremos, pero NO. Esta mala t&eacute;cnica web se ve en la mayor&iacute;a de casos con sitios web denominados <em>spam</em> o cuando un dise&ntilde;ador gr&aacute;fico no acostumbrado al entorno web, dise&ntilde;a un sitio web, es decir, alguien del sector de la fotograf&iacute;a, video o art&iacute;stico que tambi&eacute;n hace sitios web (ver consejo n&uacute;mero 6 para conocer m&aacute;s cosas sobre estos), pero a decir verdad no tiene idea alguna de c&oacute;mo crear un web exitoso y usable.<br /><img title="No redimensionar la ventana del navegador" src="http://farm1.static.flickr.com/150/391487797_e7749ccade.jpg?v=0" alt="No redimensionar la ventana del navegador" width="325" height="294" /><br />
<h3>Si quieres cargar una home, y a continuaci&oacute;n tu web en un pop-up, para nada te lo recomendamos.</h3>
Si tu web necesita que el visitante carge una p&aacute;gina de inicio y entonces acceda a la verdadera p&aacute;gina web en un pop up (ventana emergente), estas mareando al usuario, le das la bienvenida pero no es as&iacute;, le vuelves a dar la bienvenida. Si tu web no carga de forma inmediata con un inicio que aporte valor al visitante, es muy dificil que espere a que termine tu show de inicio (no le preocupa lo bonita y espectacular que es la p&aacute;gina de introducci&oacute;n). Esta t&eacute;cnica se ve con la mayor&iacute;a de desarrolladores web con Flash, los cuales, por alguna raz&oacute;n piensan que todos los sitios web en flash tienen que abrirse en una ventana emergente (estan dando por hecho que burlan los programas que bloquean ventanas emergentes) y tienen 30 segundos de carga de una introducci&oacute;n como <a href="http://www.2advanced.net/" target="_blank">www.2advanced.net</a><br />
<h3>Si preguntas que versi&oacute;n quieres: versi&oacute;n flash, html, alta resoluci&oacute;n, baja resoluci&oacute;n. Tambi&eacute;n pierdes oportunidad.</h3>
<p>Es como si le preguntases a alguien que quiere entrar en tu tienda, si quiere pasar a la tienda mala o a la buena (pero claro, hay que tener en cuenta que para entrar en la tienda buena hacen falta unas gafas especiales y una peque&ntilde;a espera de 30 segundos... MMM, NO gracias), lo que les estas preguntando es: "&iquest;Quieres irte y comprar en mi competencia? porque te estoy poniendo una muralla que tienes que saltar antes de que conozcas los productos o servicios que te ofrezco.</p>
<h3>Si tienes una web, toda en flash, hazla de nuevo.</h3>
Si tu web est&aacute; toda en Flash, echa a tu dise&ntilde;ador web y si la hiciste t&uacute;, a&ntilde;&aacute;dela a tu curriculum bajo la secci&oacute;n de "Proyectos sin utilidad que he realizado" y empieza de nuevo a hacer la web.&nbsp;<br /> Flash es una herramienta, una herramienta con much&iacute;simas posibilidades como animaciones, v&iacute;deo, carritos de la compra, interfaces, etc, la lista es muy grande pero las cosas en su medida. Esto no quiere decir que tengas que hacer un sitio web todo en Flash y si lo haces tendr&aacute;s una gran desventaja con tu competencia. F&iacute;jate en una cosa, hasta el propietario de Flash, <a href="http://www.adobe.com/">Macromedia/Adobe</a> no tiene su web toda en Flash, &iquest;sabes porqu&eacute;? Quieren hacer negocio y no hacen caso a los <em>dise&ntilde;adores</em>.<br /><img title="No hagas una web toda en flash" src="http://farm1.static.flickr.com/132/391506482_f6a6bdc635.jpg?v=0" alt="No hagas una web toda en flash" width="450" height="415" /><br />
<h3>NO intentes REinventar la navegaci&oacute;n por p&aacute;ginas web</h3>
<p>Situa los elementos gr&aacute;ficos en la zona de tu p&aacute;gina web que quieras, ponlos arriba, a la izquierda, tambi&eacute;n en la parte derecha puedes colocar elementos, pero sobre todo, no inventes la l&oacute;gica de navegaci&oacute;n, esto es, la manera en que las personas interactuan con interfaces digitales, a la misma vez que est&aacute;s intentando vender un producto o servicios. El usuario se confundir&aacute;, se enfadar&aacute;, y se ir&aacute;.</p>
<h3>&nbsp;Este trabajo me va a dar bastantes dolores de cabeza</h3>
<p>Si eres un dise&ntilde;ador gr&aacute;fico, y "de paso ofreces p&aacute;ginas web", estas dando consejos sobre dise&ntilde;o web, a tus clientes de trabajos gr&aacute;ficos impresos, se cauto con este tema. El dise&ntilde;o gr&aacute;fico para impresi&oacute;n se parece al dise&ntilde;o web lo mismo que un anuncio de un coche de carreras a conducir y construir ese coche de carreras. No cometamos errores, el dise&ntilde;o gr&aacute;fico es fant&aacute;stico por si mismo, sabes hacer gr&aacute;ficas perfectas y perfectos slogans para impresi&oacute;n. Un usuario no puede comprarte el producto con un anuncio impreso (por el momento), no pueden comunicarse con tu negocio a trav&eacute;s de un anuncio impreso. Ded&iacute;cate al dise&ntilde;o gr&aacute;fico y no metas tus narices en un medio que no conoces ni entiendes (lo mismo les digo a esos "t&eacute;cnicos" que haces websites "aprovechando la situaci&oacute;n")</p>
<h4>Si una p&aacute;gina de inicio no tiene contenido o cualquier texto Real (no incluido en una imagen) y esto mismo es extensible a todo el sitio web. Contrata a una persona que dote de contenido a la p&aacute;gina web y despide a tu webmaster.</h4>
<p>El contenido es el rey. Los buscadores no indexan gr&aacute;ficos o animaciones flash deslumbrantes, s&oacute;lo indexan texto. Contrata una persona que de contenidos relevantes y vinculados con tu negocio (es b&aacute;sico para tener un buen ranking y poder vender / ofrecer tus productos o servicios a trav&eacute;s de una p&aacute;gina web)</p>
<h4>Si tu p&aacute;gina web no funciona con Firefox, da la bienvenida a la metedura de pata m&aacute;s com&uacute;n de 2007.</h4>
<p>Realmente, Firefox s&oacute;lo genera entre el 10-15% de la cuota de mercado de los navegadores de usuario, pero en el caso de algunos sitios web, esta cuota es mucho m&aacute;s alta, por ejemplo, oomny.com tiene m&aacute;s del 80% de sus usuarios con Firefox. Adem&aacute;s, si quien hizo tu p&aacute;gina web, no la hizo compatible y funcional con Firefox, obviamente no tienen idea de lo que est&aacute;n haciendo y se est&aacute;n saliendo del juego. No hay raz&oacute;n por la que se necesite un sitio web s&oacute;lo compatible y totalmente dependiente de Internet Explorer para que no funcione en Firefox, y francamente, no hay raz&oacute;n alguna para ello. Que un webmaster no conozca Firefox, quiere decir que no est&aacute; en la cultura de Internet y esto puede hacer que tu imagen y la de tu negocio en Internet se vean afectados.</p>
<h3>Este punto es una colecci&oacute;n de peque&ntilde;as cosas que han hecho desaparecer a otros sitios web.</h3>
<p>Son principios b&aacute;sicos pero repetidos, como no mostrar texto parpadeante, no usar Frontpage, no utilizar pop-ups o ventanas emergentes, no hacer texto con scroll, obligar a la descarga de fuentes o tipograf&iacute;as especiales, utilizar introducciones Flash, ...</p>
<h3>Si utilizas m&uacute;sica en tu p&aacute;gina web cerciorarte de que el usuario pueda detenerla,</h3>
<p>y es MEJOR NO cargarla con la p&aacute;gina web sin que la solicite el usuario. Esto mismo, es aplicable al v&iacute;deo con audio, muchos usuarios de p&aacute;ginas web navegan desde su trabajo y no les hace mucha gracia que sus altavoces empiecen a sonar con tu espantosa m&uacute;sica de forma totalmente intrusiva en su ordenador, y m&aacute;s si su jefe est&aacute; pendiente y con ganas de darle a alguien una patada en el trasero.</p>]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=4</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/19-consejos-para-construir-paginas-web.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Activado automático de componentes en IE (Actualización de los cambios en componentes ActiveX de IE)</title>
			<link>http://www.imaginanet.com/blog/activado-automatico-de-componentes-en-ie-actualizacion-de-los-cambios-en-componentes-activex-de-ie.html</link>
			<guid>http://www.imaginanet.com/blog/activado-automatico-de-componentes-en-ie-actualizacion-de-los-cambios-en-componentes-activex-de-ie.html</guid>
			<comments>http://www.imaginanet.com/blog/activado-automatico-de-componentes-en-ie-actualizacion-de-los-cambios-en-componentes-activex-de-ie.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Thu, 29 Oct 2009 13:28:38 +0100</pubDate>
					<category><![CDATA[Internet Explorer]]></category>
					<category><![CDATA[Navegadores]]></category>
					<category><![CDATA[ActiveX]]></category>
					<description><![CDATA[Si miramos a abril de 2006, hicimos un cambio en la forma en que Internet Explorer manejaba los controles incrustados (embed) en bastantes p&aacute;ginas web. Algunos sitios web obligaban a los usuarios a "pulsar para activar" antes de que pudieran interactuar con el control. A dia de hoy, Microsoft ha obtenido la licencia de...]]></description>
			<content:encoded><![CDATA[>Si miramos a abril de 2006, hicimos un cambio en la forma en que Internet Explorer manejaba los controles incrustados (embed) en bastantes p&aacute;ginas web. Algunos sitios web obligaban a los usuarios a "pulsar para activar" antes de que pudieran interactuar con el control. A dia de hoy, Microsoft ha obtenido la licencia de Eolas, eliminando con esta el requisito de Internet Explorer de "pulsa para activar". Por esto, vamos a quitar el comportamiento "pulsar para activar el control" que ahora tiene IE.<br /> <br /> Es importante tener en cuenta que este cambio no necesitar&aacute; que se modifiquen&nbsp;las p&aacute;ginas web existentes hoy en d&iacute;a , ni acciones nuevas a tomar por parte de quienes crean y desarrollan p&aacute;ginas web. Simplemente estamos retrocediendo al comportamiento anterior. Una vez se actualice Internet Explorer, todas las p&aacute;ginas que ahora necesitan del "pulsar para activar" dejar&aacute;n de necesitarlo para que el control se active. Simplemente funcionar&aacute;. <br /> <img src="/ftp/articulos_web/activex_ie/clicktoactivate.png" alt="" /><br />Lo m&aacute;s normal es que actualmente te preguntes para cuando est&aacute; previsto lanzar esta actualizaci&oacute;n.<br /> <br /> La primera versi&oacute;n en pruebas, saldr&aacute; con una actualizaci&oacute;n opcional llamada Activaci&oacute;n de Componentes Autom&aacute;tica para Internet Explorer (Internet Explorer Automatic Component Activation Preview), y estar&aacute; disponible en Diciembre de 2007 en el Centro de Descargas de Microsoft. Adem&aacute;s, este cambio formar&aacute; parte de las pr&oacute;ximas versi&oacute;nes pre-release de Windows Vista SP1 y Windows XP SP3. Despu&eacute;s de haber dado tiempo a que los usuarios se preparen para este cambio, haremos que este comportamiento forme parte de la "Cumulative Update" de Internet Explorer en Abril de 2008, as&iacute;, todos los clientes que instalen esta actualizaci&oacute;n, aplicar&aacute;n este cambio a su IE.<br /> <br /> Si tienes una aplicaci&oacute;n a medida usando WebOC o MSHTML, habr&aacute; algunos cambios que afectar&aacute;n tu aplicaci&oacute;n. Por ejemplo:<br /> - Si la aplicaci&oacute;n usa el flag&nbsp;DOCHOSTUI para el "pulsar para activar", ese comportamiento se respetar&aacute; y tu aplicaci&oacute;n seguir&aacute; necesitando del "pulsar para activar".<br /> - Si la aplicaci&oacute;n usa la clave del registro FEATURE_ENABLE_ACTIVEX_INACTIVE_MODE para optar por el "pulsar para activar", esta clave de registro no ser&aacute; mantenida. Si quieres seguir utilizando el "pulsar para activar", por favor, utilliza el flag DOCHOSTUI.<br /> <br /> En las pr&oacute;ximas semanas actualizaremos en <a href="http://msdn.microsoft.com/ieupdate">art&iacute;culo en MSDN</a> con las descripciones del nuevo comportamiento. Estate atento en este enlace para saber cuando sale la preview.<br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=2</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/activado-automatico-de-componentes-en-ie-actualizacion-de-los-cambios-en-componentes-activex-de-ie.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Haciendo funcionar a las hojas de estilos alternativas</title>
			<link>http://www.imaginanet.com/blog/haciendo-funcionar-a-las-hojas-de-estilos-alternativas.html</link>
			<guid>http://www.imaginanet.com/blog/haciendo-funcionar-a-las-hojas-de-estilos-alternativas.html</guid>
			<comments>http://www.imaginanet.com/blog/haciendo-funcionar-a-las-hojas-de-estilos-alternativas.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Tue, 20 Oct 2009 12:35:41 +0100</pubDate>
					<category><![CDATA[JavaScript]]></category>
					<category><![CDATA[CSS]]></category>
					<description><![CDATA[Autor Original: Paul Sowden  URL ORIGINAL: http://www.alistapart.com/stories/alternate/  TÍTULO ORIGINAL: A List Apart: CSS: Making Alternate Style Sheets Work  Traducción al castellano: http://kusor.net/traducciones/ala.es/alternate/  Así, TIENES UN DOCUMENTO XHTML. Has sido un diseñador web bueno y utilizado hojas de estilos...]]></description>
			<content:encoded><![CDATA[><em><span style="text-decoration: underline;">Autor Original</span>: Paul Sowden <br /> <span style="text-decoration: underline;">URL ORIGINAL</span>: http://www.alistapart.com/stories/alternate/ <br /> <span style="text-decoration: underline;">TÍTULO ORIGINAL</span>: A List Apart: CSS: Making Alternate Style Sheets Work <br /> <span style="text-decoration: underline;">Traducción al castellano</span>: http://kusor.net/traducciones/ala.es/alternate/</em><br /> <br /> Así, TIENES UN DOCUMENTO XHTML. Has sido un diseñador web bueno y utilizado hojas de estilos para controlar el aspecto de tu documento. Incluso has ido mucho más allá y has creado varias hojas de estilo alternativas para demostrar lo duro que eres. <br /> <br /> Estupendo. Pero ahora necesitas un modo cross–browser de elegir dinámicamente entre las distintas hojas de estilos. <br /><br />
<h3>Dándole estilo a tu sitio</h3>
Las hojas de estilos pueden ser asociadas con los documentos usando una lista de elementos link en la cabecera del documento. Hay tres tipos de relación distintos que pueden tener las hojas de estilos externas con el documento: persistentes, preferridas, y alternativas.<br />
<h4>Persistentes</h4>
Estas hojas de estilos están habilitadas siempre (siempre están “encendidas”) y son combinadas con la hoja de estilos activa. Pueden utilizarse para compartir reglas comunes a todas las hojas de estilos. Para hacer una hoja de estilos persistente, el atributo rel es fijado a “stylesheet” y no se fija ningún atributo title. <br /> <br /> Para hacer persistente la hoja de estilos paul.css, el siguente elemento link debería ser incluido en la cabecera del documento:
<h4>Preferidas</h4>
Estas hojas de estilo están habilitadas por defecto (están “encendidas” cuando se ha cargado la página). Pueden ser deshabilitadas entonces, si el usuario eleige una hoja de estilos alternativa. <br /> <br /> Para hacer una hoja de estilos preferida, el atributo rel se fija a “stylesheet” y a la hoja de estilos se le asigna un nombre con el atributo title. <br /> <br /> Varias hojas de estilo preferidas pueden ser agrupadas dándoles atributos title idénticos. Estas hojas de estilos agrupadas serán entonces habilitadas y deshabilitadas juntas. Si se declara más de un grupo de hojas de estilo preferidas, el primero que se declare tendrá preferencia. <br /> <br /> Para hacer preferida a paul.css, es añadido un atributo title, dándole al estilo por defecto un nombre.<br />
<h4>Alternativas</h4>
Estas hojas de estilo pueden ser seleccionadas por el visitante como alternativas a la hoja de estilos preferida. Esto permite al visitante personalizar un sitio y elegir su disposición favorita. También pueden ser utilizadas para accesibilidad (por ejemplo, ALA tiene la hoja de estilos “friendly fonts” que proporciona fuentes mayores). <br /> <br /> Para especificar una hoja de estilos alternativa, el atributo rel se fija a “alternate stylesheet” y la hoja de estilos se nombra con un atributo title. Como pasa con las hojas de etilo preferidas, estas hojas de estilos pueden ser agrupadas juntas también dándoles atributos title idénticos. <br /> <br /> Usando de nuevo el ejemplo previo; para convertir paul.css en una hoja de estilos alternativa, la palabra “alternate” es añadida al atributo rel.<br /> Notar que estas relaciones sólo se aplican a hojas de estilo externas que hayan sido incluidas usando el elemento link.<br />
<h3>Intercambiando estilos</h3>
Cuando un documento es cargado inicialmente, las hojas de estilo persistentes y preferidas son aplicadas al documento. Las hojas de estilo alternativas pueden ser seleccionadas por el usuario. El W3C nos dice que el navegador debería proporcionarnos un medio de elegir la hoja de estilos que queremos utilizar, y sugiere que quizá un menú sesplegable o un abarra de herramientas debería ser proporcionada. <br /> <br /> Hasta aquí, muy bien. Tenemos varias hojas de estilos y el visitante puede elegir sus favoritas desde un menú. Pero entonces nos encontramos con un prolema. Uno importante. Mozilla proporciona un menú para seleccionar las hojas de estilos que queremos usar bajo un item del menú ver. Pero Microsoft Internet Explorer (MSIE) no proporciona ningún menú. Por lo que tenemos varias hojas de estilos, y ningún modo de acceder a ellas en MSIE. <br /> <br /> Aquí es donde un poco de JavaScript puede ser utilizado junto con el DOM para proporcionar un modo mediante el cuál los usuarios de MSIE y Mozilla puedan seleccionar la hoja de estilos que quieran utilizar. Sus preferencias pueden guardarse también en una cookie. Y como estamos utilizando las etiquetas link tal como nos dice el W3C, JavaScript no va a interferir con el menú en Mozilla, y va a degradar grácilmente. <br />
<h3>El Script</h3>
Primero necesitamos que el script sea capaz de diferenciar entre tres tipos diferentes de hojas de estilo. Esto es relativamente fácil de hacer, dado que sólo necesitamos comprobar dos de los atributos de cada elemento link. <br /> <br /> ¿Hay algún enlace a un elemento link?<br />
<pre class="code">HTMLLinkElement.getAttribute("rel").indexOf("style") != -1 </pre>
¿Hay un atributo title?
<pre class="code">HTMLListElement.getAttribute("title")</pre>
¿Contiene el atributo rel la palabra clave "alternate"?
<pre class="code">HTMLLinkElement.getAttribute("rel").indexOf("alt") != -1</pre>
Notar que estamos buscando la cadena “alt” porque algunos navegadores aceptan la palabra reservada “alternative” en lugar de “alternate.” <br /> <br /> Usando estos tres tipos de chequeo podemos escribir una función para elegir las hojas de estilos. Esto implica buscar todos los elemoentos link en el documento, deshabilitando todas las hojas de estilo preferidas y alternativas que no queremos que estén activas, y habilitando todas las hojas de estilo preferidas y alternativas que queremos que estén activas. <br /> <br /> Notar que sólamente los elementos link de hojas de estilo alternativas y preferidas tendrán un atributo title. <br /> <br /> La función de cambio tiene el aspecto siguiente:
<pre class="code">function setActiveStyleSheet(title) { <br /> var i, a, main; <br />  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { <br />    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { <br />     a.disabled = true; <br />     if(a.getAttribute("title") == title) a.disabled = false; <br />    } <br />  } <br />}  </pre>
<h4>Cookies</h4>
Ahora podemos cambiar las hojas de estilo. Estupendo. Tenemos una página más personalizada. Excelente. Pero no tenemos un sitio personalizado. Las preferencias se aplican sólo a la página actual; cuando la dejemos las preferencias se irán con ella. De cualquier modo, esta situaciónpuede ser rectificada con una cookie. <br /> <br /> Para guardar una cookie necesitamos otra función que devuelva la hoja de estilo actual. También necesitamos dos funciones que guarden y lean la cookie. <br /> <br /> Para devolver la hoja de estilo actual buscaremos una hoja de estilo preferida o alternativa que esté activa y miraremos su atributo title. <br /> <br /> Primero buscaremos de nuevo a través de todos los elementos link en el documento. Entoncdes comprobaremos que el link es una hoja de estilo. Si es así, comprobaremos que la hoja de estilo tiene un atributo title. Esto nos dirá que la hoja de estilo es bien preferida, bien alternativa. <br /> <br /> La última comprobación es ver si la hoja de estilo está activa o no. Si las tres búsquedas devuelven verdadero, tendremos la hoja de estilo actual y podremos devolver su atributo title. <br /> <br /> La función terminada tiene este aspecto:
<pre class="code">function getActiveStyleSheet() { <br /> var i, a; <br />   for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { <br />    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) <br />    return a.getAttribute("title"); <br />   } <br /> return null; <br />} </pre>
Como este es un artículo sobre estilos, y las cookies son un tópico completamente diferente, no voy a explicar las funciones de las cookies aquí, pero si voy a incluirlas para tu conveniencia (estas funciones fueron escritas por el autor de ALA Peter-Paul Koch).
<pre class="code">function createCookie(name,value,days) { <br />   if (days) { <br />    var date = new Date(); <br />    date.setTime(date.getTime()+(days*24*60*60*1000)); <br />    var expires = "; expires="+date.toGMTString(); <br />   } <br />   else expires = ""; <br /> document.cookie = name+"="+value+expires+"; path=/"; <br />} <br /> <br />function readCookie(name) { <br /> var nameEQ = name + "="; <br /> var ca = document.cookie.split(';'); <br />    for(var i=0;i < ca.length;i++) { <br />     var c = ca[i]; <br />     while (c.charAt(0)==' ') c = c.substring(1,c.length); <br />     if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); <br />    } <br /> return null; <br />} </pre>
Para usar estas funciones de cookies, necesitamos agregar onload y onunload event listeners a la ventana.<br />
<h4>onLoad</h4>
Hay un atributo especificado por el w3c DOM Level 2, “disabled,” que se fija a false cuando una hoja de estilos se aplica al documento. Este atributo es implementado correctamente en Mozilla, pero desafortunadamente no lo es en MSIE. <br /> <br /> MSIE tiene un atributo HTML propietario, también llamado “disabled”, que se aplica a los elementos link. Este atribute es fijado inicialmente a false para todos los elementos link. <br /> <br /> Para fijar el atributo disabled de MSIE tal como el atributo disabled del DOM Level 2, podemos llamar a la función setActiveStyleSheet() con el nombre de la hoja de estilo preferida. <br /> <br /> Para encontrar qué hoja de estilo es la preferida, necesitamos otra función. Dado que esta función es bastante similar a la función getActiveStyleSheet() no voy a explicar como funciona, pero aquí está su aspecto:
<pre class="code">function getPreferredStyleSheet() { <br /> var i, a; <br />    for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { <br />     if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("rel").indexOf("alt") == -1 && a.getAttribute("title")) <br />     return a.getAttribute("title"); <br />    } <br /> return null; <br />} </pre>
en la función onload, primero fijamos una variable title. Ésta guardará el valor de la hoja de estilos previa que está almacenada en la cookie, o si no hay ninguna, el título de nuestra hoja de estilos preferida. Para hacer las cosas lógicas, vamos a llamar a la cookie “style.” <br /> <br /> Lo siguiente será llamar a la función setActiveStyleSheet() pasándole la variable title como title. Nuestra función onload será algo parecido a esto:
<pre class="code">window.onload = function(e) { <br />   var cookie = readCookie("style"); <br />   var title = cookie ? cookie : getPreferredStyleSheet(); <br />   setActiveStyleSheet(title); <br />} </pre>
Notar que es muy deseable llamar a esta función antes del evento onload, haciendo al documento que “pinte” con nuestro estilo preferido. <br /> <br /> Si eleiges hacer esto, asegúrate que dicha función es llamada después de haber definido las otras funciones y que los elementos link han sido definidos.<br />
<h4>onUnload</h4>
Guardar la cookie en el evento onunload es simple. Todo lo que tenemos que hacer es usar la función getActiveStyleSheet() para que nos devuelva la hoja de estilos activa, y guardarla en una cookie. Usando la función para guardar una cookie tendríamos finalmente algo como esto:
<pre class="code">window.onunload = function(e) { <br />   var title = getActiveStyleSheet(); <br />   createCookie("style", title, 365); <br />} </pre>
<h3>Juntándolo todo</h3>
Para usar estas funciones para hacer tu sitio web más sexy, necesitas incluirlas en tu documento. Para hacerlo más fácil, las he puesto todas juntas en un fichero javascript, preparado para que lo descargues y lo añadas a tu sitio. <br /> » <a href="http://www.alistapart.com/d/alternate/styleswitcher.js" target="_blank">Descargar styleswitcher.js </a><br /> <br /> Para incluir el fichero javascript, necesitas añadir un elemento script a la cabecera de tu documento, asegurándote de que está puesto después de todos los elementos link pertenecientes a hojas de estilo que tengas. El código HTML debería tener este aspecto:
<pre class="code"><script src="/scripts/styleswitcher.js" type="text/javascript"><!--mce:0--></script> </pre>
Para permitir al visitante cambiar la hoja de estilos activa, podrías usar los eventos onClick de javascript. Por ejemplo, para tener la opción de elegir entre dos temas con los títulos “default” y “paul,” podrías usar el siguiente HTML:
<pre class="code"><a onclick="setActiveStyleSheet('default'); return false;" href="#">change style to default</a> <br /><a onclick="setActiveStyleSheet('paul'); return false;" href="#">change style to paul</a> </pre>
Una vez que el visitante ha seleccionado un tema, éste será almacenado en una cookie. Para usar el mismo tema en todo tu sitio web, los mismos elementos link javascript link deberían ser incluidos en la cabecera de cada página del sitio. <br /> ¡Eso es todo Gente! <br /> <br /> Ahí lo tienes, un sitio web personalizable que utiliza elementos link para enlazar hojas de estilo como el W3C nos ha dicho que deberíamos hacer. ¡Disfrútalo! <br /> <br /> ::: Paul Sowden tiene 17 años (Londres, Inglaterra), y cree que la web sería un lugar mejor si todos usásemos tecnicas de diseño que cumpliesen con los estándares.<br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=1</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/haciendo-funcionar-a-las-hojas-de-estilos-alternativas.html</feedburner:origLink>
		</item>
				
		<item>
			<title>Arreglando tu página web con el DOCTYPE correcto</title>
			<link>http://www.imaginanet.com/blog/arreglando-tu-pagina-web-con-el-doctype-correcto.html</link>
			<guid>http://www.imaginanet.com/blog/arreglando-tu-pagina-web-con-el-doctype-correcto.html</guid>
			<comments>http://www.imaginanet.com/blog/arreglando-tu-pagina-web-con-el-doctype-correcto.html#comentarios</comments>
			<dc:creator>Imaginanet S.L.</dc:creator>
			<pubDate>Mon, 23 Nov 2009 19:49:19 +0100</pubDate>
					<category><![CDATA[XHTML]]></category>
					<description><![CDATA[Autor Original: Jeffrey ZeldmanURL ORIGINAL: http://www.alistapart.com/articles/doctype/T&Iacute;TULO ORIGINAL: A List Apart: Fixing Your Site With the Right DOCTYPELO HAS HECHO TODO BIEN, pero tu sitio web no tiene el aspecto deseado o funciona como deber&iacute;a hacerlo en los &uacute;ltimos navegadores.Has escrito XHTML y CSS...]]></description>
			<content:encoded><![CDATA[><em><span style="text-decoration: underline;">Autor Original</span>: Jeffrey Zeldman<br /><span style="text-decoration: underline;">URL ORIGINAL</span>: http://www.alistapart.com/articles/doctype/<br /><span style="text-decoration: underline;">T&Iacute;TULO ORIGINAL</span>: A List Apart: Fixing Your Site With the Right DOCTYPE</em><br /><br />LO HAS HECHO TODO BIEN, pero tu sitio web no tiene el aspecto deseado o funciona como deber&iacute;a hacerlo en los &uacute;ltimos navegadores.<br /><br />Has escrito XHTML y CSS v&aacute;lidos. Has utilizado el Modelo de Objetos del Documento (DOM) est&aacute;ndar del W3C para manipular din&aacute;micamente los elementos de la p&aacute;gina. A pesar de todo, en navegadores dise&ntilde;ados para soportar todos estos est&aacute;ndares, tu sitio est&aacute; fallando. Un DOCTYPE - tipo de documento - defectuoso tiene la culpa de ello.<br /><br />Este peque&ntilde;o art&iacute;culo te proporcionar&aacute; DOCTYPEs que funcionen, y explicar&aacute; el efecto pr&aacute;ctico, en el mundo real de estas etiquetas aparentemente abstractas. <br />
<h3>&iquest;PORQU&Eacute; UN DOCTYPE?</h3>
Para los est&aacute;ndares HTML y XHTML, un DOCTYPE (abreviatura de &ldquo;declaraci&oacute;n de tipo de documento&rdquo;) informa al validador de la versi&oacute;n de (X)HTML que est&aacute;s utilizando, y deber&iacute;a aparecer al principio de cada p&aacute;gina web. Los DOCTYPEs son un componente clave de las p&aacute;ginas veb de conformidad: tu marcado y tus CSS no validar&aacute;n sin ellos.<br /><br />Como fu&eacute; mencionado en art&iacute;culos previos de ALA (y en otros lugares interesantes), los DOCTYPES tambi&eacute;n son esenciales para la apropiada renderizaci&oacute;n y funcionamiento de los documentos web en navegadores de conformidad como Mozilla, IE5/Mac, y IE6/Win.<br /><br />Un DOCTYPE reciente, que incluye una URI completa(una direcci&oacute;n web completa) les dice a estos navegadores que rendericen tu p&aacute;gina en modo conforme con los est&aacute;ndares, tratando tus (X)HTML, CSS, y DOM como esperas que deben ser tratados.<br /><br />Usando un DOCTYPE incompleto u obsoleto&mdash;o ning&uacute;n DOCTYPE&mdash;colocar&aacute; a los mismos navegadores en modo &ldquo;Caprichoso&rdquo;, bajo el que el navegador asume que has escrito a la vieja usanza, marcado inv&aacute;lido y c&oacute;digo para las deprimentes normas de la industria de finales de los 1990.<br /><br />Con esta configuraci&oacute;n, el navegador va a intentar parsear tu p&aacute;gina en modo compatible hacia atr&aacute;s, renderizando tus CSS como deber&iacute;an haber sido vistas en IE4, y revirtiendo a un DOM propietario, espec&iacute;fico de los navegadores. (IE revierte al DOM IE; Mozilla y Netscape 6 revierten a vaya usted a saber.)<br /><br />Claramente, esto no es lo que quer&iacute;as. Pero es frecuentemente lo que tienes, dada la preponderancia de informaci&oacute;n incompleta o incorrecta sobre el DOCTYPE que este art&iacute;culo espera corregir.<br /><br />(Nota: El navegador Opera no se rije por estas reglas; siempre trata de renderizar las p&aacute;ginas en modo conforme con los est&aacute;ndares. &iexcl;Vamos, Opera! En el otro lado, Opera todav&iacute;a no ofrece un soporte s&oacute;lido para el DOM del W3C. Pero est&aacute;n trabajando en ello.) <br />
<h3>&iquest;D&Oacute;NDE HAN IDO A PARAR TODOS LOS DOCTYPES?</h3>
Partiendo de que los DOCTYPES son vitales para el apropiado funcionamiento de los est&aacute;ndares de la web en los navegadores, y dado que el W3C es el principal creador de los est&aacute;ndares de la web, podr&iacute;as esperar que el <a href="http://w3.org/">sitio web</a> del W3C proporcionase un listado de DOCTYPEs apropiados, y podr&iacute;as esperar tambi&eacute;n ser capaza de encontrar esta informaci&oacute;n r&aacute;pida y f&aacute;cilmente en una localizaci&oacute;n &uacute;nica. Pero como que esto est&aacute; escrito, que no puedes. <br /> <br /> W3.org no es <a href="http://www.alistapart.com/">A List Apart</a>, <a href="http://webreference.com/">WebReference</a>, o <a href="http://www.webmonkey.com/">Webmonkey</a>. Su intenci&oacute;n no es ayudar a los dise&ntilde;adores web, desarrolladores, y gente que trabaja con contenidos similares a avanzar m&aacute;s r&aacute;pido en las &uacute;ltimas pr&aacute;cticas y recomendaciones tecnol&oacute;gicas. Ese no es su trabajo. <br /> <br /> W3C publica una serie de <a href="http://www.w3.org/2002/03/tutorials.html">tutoriales</a>, que la mayor&iacute;a de dise&ntilde;adores web ignoran. Sin embargo, el sitio web del W3C aloja principalmente una colecci&oacute;n de propuestas, borradores, y Recomendaciones, escritas por especialistas para especialistas. Y cuando digo especialistas, no quiero decir profesionales web ordinarios, como t&uacute; y como yo. Quiero decir especialistas que hacen que el resto de nosotros la Abuela el primer d&iacute;a que Ella Tuvo un Mail.&trade; <br /> <br /> Puedes buscar DOCTYPEs todo el d&iacute;a en w3.org sin encontrar una p&aacute;gina que ofrezca un listado completo de todos ellos. Y cuando consigues cazar un DOCTYPE (generalmente en relaci&oacute;n con una Recomendaci&oacute;n o Borrador de Trabajo), frecuentemente se trata de uno que no funciona en tu sitio web. <br /> <br /> Dispersos por el sitio web del W3C hay DOCTYPEs con URIs perdidas, y DOCTYPEs con URIs relativas que apuntan a documentos en el propio sitio web del W3C. Una vez que son desplazados del sitio del W3C y utilizados en tus propias p&aacute;ginas web, dichas URIs apuntan a documentos no existentes, haciendo por tanto que sean en vano tus mayores esfuerzos y que fallen los navegadores. <br /> <br /> Por ejemplo, mucho sitios muestran estos DOCTYPEs, copiados y pegados directamente de w3.org:<br />
<pre class="code"> <br /><br /></pre>
Si te fijas en la &uacute;ltima parte del DOCTYPE (&ldquo;DTD/xhtml1-strict.dtd&rdquo;), podr&aacute;s ver que es un link relativo a un documento en el sitio del W3C. Partiendo de que este documento est&aacute; en el sitio web del W3C pero no en el tuyo, la URI carece de utilidad para el navegador. <br /> <br /> El DOCTYPE que te gustar&iacute;a utilizar es:<br /> Debes observar que este &uacute;ltimo DOCTYPE incluye una URI completa al final de la etiqueta. Y como la etiqueta proporciona una localizaci&oacute;n v&aacute;lida en la web, el navegador sabe d&oacute;nde encontrarla, y renderizar&aacute; tu documento en modo conforme con los est&aacute;ndares.<br />
<h3>DOCTYPES QUE FUNCIONAN</h3>
Entonces, &iquest;qu&eacute; DOCTYPEs deber&iacute;amos utilizar? Me alegro de que lo preguntes. Los siguientes DOCTYPEs completos son los &uacute;nicos que necesitamos: <br />
<h4>HTML 4.01 Strict, Transitional, Frameset</h4>
<pre class="code">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"&gt;
</pre>
<h4>XHTML 1.0 Strict, Transitional, Frameset</h4>
<pre class="code">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"&gt;
</pre>
<h4>XHTML 1.1 DTD</h4>
<pre class="code">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;
</pre>
<h3>SIGUIENTES PASOS</h3>
&iquest;C&oacute;mo puedes colaborar a la mejora del soporte de los est&aacute;ndares en la web? Adem&aacute;s de agregar a favoriots esta p&aacute;gina (y copiar y pegar estos DOCTYPEs para tu propio uso), si tu editor web inserta DOCTYPEs, deber&iacute;as echarles un vistazo y compararlos con los listados arriba. <br /> <br /> Demasiados fabricantes de software bien-intencionados han copiado y pegado DOCTYPEs incompletos del W3C en su software. Resultado: cuando usas la funcionalidad de estos programas de insertar DOCTYPEs en tus p&aacute;ginas, los navegadores se ponen en modo Caprichoso, deshaciendo todo tu laborioso trabajo. <br /> <br /> Merece la pena contactar con la gente que hace tu paquete de autor favorito, mostr&aacute;ndoles los DOCTYPEs apropiados, y sugerirles cort&eacute;smente que tengan en cuenta este aspecto en la siguiente actualizaci&oacute;n. (En algunos casos, tambi&eacute;n ser&aacute;s capaz de <a href="http://www.alistapart.com/articles/dreamweaver/">modificar tu editor</a> por t&iacute; mismo.) <br /><br />Tenemos todas las razones para creer que el sitio del W3C lanzar&aacute; pronto una lista de DOCTYPES acertados, utilizables, y otra informaci&oacute;n esencial en una localizaci&oacute;n f&aacute;cil de encontrar. De hecho, Karl Dubost, Conformance Manager del equipo del W3C <a href="http://www.w3.org/QA/">Quality Assurance</a>, contribuy&oacute; a la informaci&oacute;n de este peque&ntilde;o art&iacute;culo. <br /> <br /> Del mismo modo, el relanzamiento de <a href="http://www.webstandards.org/">The Web Standards Project</a> proporciona en sus p&aacute;ginas <a href="http://www.webstandards.org/learn/templates/">esta informaci&oacute;n</a>.<br />]]></content:encoded>
			<wfw:commentRss>http://www.imaginanet.com/feeds.htm?blog=3</wfw:commentRss>
			<slash:comments>0</slash:comments>
			<feedburner:origLink>http://www.imaginanet.com/blog/arreglando-tu-pagina-web-con-el-doctype-correcto.html</feedburner:origLink>
		</item>
		</channel>
</rss>