<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>Viva el Pixel &#187; Yslow</title>
	<atom:link href="http://www.vivaelpixel.com/tag/yslow/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vivaelpixel.com</link>
	<description>Blog sobre Tecnologia y marketing online</description>
	<lastBuildDate>Thu, 09 Sep 2010 17:06:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Yahoo! Developer Network</title>
		<link>http://www.vivaelpixel.com/2010/01/yahoo-developer-network/</link>
		<comments>http://www.vivaelpixel.com/2010/01/yahoo-developer-network/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 15:00:44 +0000</pubDate>
		<dc:creator>Andy Kaiser</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Usabilidad]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Yahoo!]]></category>
		<category><![CDATA[Yslow]]></category>
		<guid isPermaLink="false">http://www.vivaelpixel.com/?p=188</guid>
		<description><![CDATA[Yahoo! Developer Network es un portal para desarrolladores, donde se ofrece acceso gratuito a la colección de API&#8217;s de Yahoo! y múltiples recursos. Google a su vez dispone de un portal parecido http://code.google.com/, pero el de Yahoo! destaca por ser muy genérico y completo, ya que ademas de toda la información sobre sus API&#8217;s hay [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.yahoo.com/" target="_blank" class="liexternal">Yahoo! Developer Network</a> es un portal para desarrolladores, donde se ofrece acceso gratuito a la colección de API&#8217;s de Yahoo! y múltiples recursos. Google a su vez dispone de un portal parecido http://code.google.com/, pero el de Yahoo! destaca por ser muy genérico y completo, ya que ademas de toda la información sobre sus API&#8217;s hay múltiples guías, tutoriales relacionados con múltiples aspectos del desarrollo de aplicaciones web. Las principales secciones son:</p>
<h3>Yahoo!&#8217;s Design Pattern Library</h3>
<p><a href="http://developer.yahoo.com/ypatterns/" target="_blank" class="liexternal">Yahoo!&#8217;s Design Pattern Library</a>, es una librería de patrones de diseño. Actualmente dispone de 56 diseños que pueden ayudar mucho a los desarrolladores y diseñadores al diseñar el interfaz y aumentar la usabilidad.</p>
<h3>Excepcional Performance</h3>
<p><a href="http://developer.yahoo.com/performance/" target="_blank" class="liexternal">Excepcional Performance</a>, es una sección dedicada a la optimización del rendimiento de webs. Además de consejos, dispone de vídeos e información sobre la extensión Yslow! para Firebug, la cual permite analizar el rendimiento de una web desde el navegador Firefox.</p>
<h3>YUI Library</h3>
<p><a href="http://developer.yahoo.com/yui/" target="_blank" class="liexternal">YUI Library</a>, es una librería de utilidades escritas en javascript y css para construir aplicaciones interactivas (RIA). Personalmente prefiero <a href="http://www.jquery.com" target="_blank" class="liexternal">jquery</a> como <em>javascript framework</em>, pero como en las diferentes distribuciones de Linux, cada una tiene sus pros y contras, y YUI es una biblioteca estable y potente &#8211; algo que queda demostrado gracias a que <a href="http://www.yahoo.com" target="_blank" class="liexternal"><em>Yahoo!</em></a> la usa en todas sus webs.</p>
<h3>Astra</h3>
<p><a href="http://developer.yahoo.com/flash/" target="_blank" class="liexternal">Astra</a>, es una librería de componentes para Adobe Flash y Flex pensado para los desarrolladores Flash &amp; Actionscript que permite construir aplicaciones interactivas (RIA).</p>
<h3>Lenguajes de programación</h3>
<p>En los centros de lenguajes de programación encontrarás tutoriales, articulos, foros y ejemplos de código de los siguientes lenguajes de programación: <a href="http://developer.yahoo.com/flash/" target="_blank" class="liexternal">Flash</a>, <a href="http://developer.yahoo.com/java/" target="_blank" class="liexternal">Java</a>, <a href="http://developer.yahoo.com/javascript/" target="_blank">JavaScript</a>, <a href="http://developer.yahoo.com/dotnet/" target="_blank" class="liexternal">.NET</a>, <a href="http://developer.yahoo.com/php/" target="_blank" class="liexternal">PHP</a>, <a href="http://developer.yahoo.com/python/" target="_blank" class="liexternal">Python</a>, <a href="http://developer.yahoo.com/ruby/" target="_blank" class="liexternal">Ruby</a> y <a href="http://developer.yahoo.com/dotnet/silverlight/" target="_blank" class="liexternal">Silverlight</a>.</p>
<h3>API y servicios web</h3>
<p>Por último recordar que en este portal encontraremos toda la información y ejemplos relacionados con las más de 35 APIs y servicios web de Yahoo!, como por ejemplo <a href="http://developer.yahoo.com/flickr/" target="_blank" class="liexternal">Flickr</a>, <a href="http://developer.yahoo.com/maps/" target="_blank" class="liexternal">Yahoo! Maps</a>. De todos ellos me gustaría destacar dos:</p>
<ol>
<li><a href="http://pipes.yahoo.com/pipes/" target="_blank" class="liexternal">Pipes</a>, una aplicación web que permite crear <em>mashups</em> de datos a través de un interfaz gráfico y diversas fuentes y formatos (rss, json, &#8230;)</li>
<li><a href="http://developer.yahoo.com/connectedtv/" target="_blank" class="liexternal">Yahoo! Connected TV Platform</a>, una plataforma para poder crear <em>widgets</em> para televisores Sony®, VIZIO®, Samsung®, LG®. Inicialmente solo estaba disponible para EE.UU, pero desde principios de este año el servicio está disponible para 16 paises, entre los que está España.</li>
</ol>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Yahoo%21+Developer+Network+-+http://b2l.me/e49vy&amp;source=shareaholic" rel="nofollow" class="external" title="&iexcl;Comp&aacute;rtelo en Twitter!">&iexcl;Comp&aacute;rtelo en Twitter!</a>
		</li>
		<li class="shr-meneame">
			<a href="http://meneame.net/submit.php?url=http://www.vivaelpixel.com/2010/01/yahoo-developer-network/" rel="nofollow" class="external" title="Enviar a Meneame">Enviar a Meneame</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.vivaelpixel.com/2010/01/yahoo-developer-network/&amp;title=Yahoo%21+Developer+Network&amp;summary=Yahoo%21%20Developer%20Network%20es%20un%20portal%20para%20desarrolladores%2C%20donde%20se%20ofrece%20acceso%20gratuito%20a%20la%20colecci%C3%B3n%20de%20API%27s%20de%20Yahoo%21%20y%20m%C3%BAltiples%20recursos.%20Google%20a%20su%20vez%20dispone%20de%20un%20portal%20parecido%20http%3A%2F%2Fcode.google.com%2F%2C%20pero%20el%20de%20Yahoo%21%20destaca%20por%20ser%20muy%20gen%C3%A9rico%20y%20completo%2C%20ya%20que%20ademas%20de%20to&amp;source=Viva el Pixel" rel="nofollow" class="external" title="Compartir con LinkedIn">Compartir con LinkedIn</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.vivaelpixel.com/2010/01/yahoo-developer-network/&amp;title=Yahoo%21+Developer+Network" rel="nofollow" class="external" title="&iexcl;Comp&aacute;rtelo con Digg!">&iexcl;Comp&aacute;rtelo con Digg!</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.vivaelpixel.com/2010/01/yahoo-developer-network/&amp;title=Yahoo%21+Developer+Network" rel="nofollow" class="external" title="Compartir con del.icio.us">Compartir con del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.vivaelpixel.com/2010/01/yahoo-developer-network/&amp;t=Yahoo%21+Developer+Network" rel="nofollow" class="external" title="Compartir con Facebook">Compartir con Facebook</a>
		</li>
		<li class="shr-bitacoras">
			<a href="http://bitacoras.com/anotaciones/http://www.vivaelpixel.com/2010/01/yahoo-developer-network/" rel="nofollow" class="external" title="Enviar a Bitacoras">Enviar a Bitacoras</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.vivaelpixel.com/2010/01/yahoo-developer-network/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Optimización pageload en Apache2</title>
		<link>http://www.vivaelpixel.com/2010/01/optimizacion-pageload-en-apache2/</link>
		<comments>http://www.vivaelpixel.com/2010/01/optimizacion-pageload-en-apache2/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 19:23:49 +0000</pubDate>
		<dc:creator>Andy Kaiser</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SEO/SEM/SMO]]></category>
		<category><![CDATA[Apache2]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[ETags]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[Yahoo!]]></category>
		<category><![CDATA[Yslow]]></category>
		<guid isPermaLink="false">http://www.vivaelpixel.com/?p=189</guid>
		<description><![CDATA[Como optimizar los tiempos de carga de una página en Apache2, con mod_deflate, mod_headers, mod_expires y Etag para mejorar el SEO y la experiencia de los usuarios.]]></description>
			<content:encoded><![CDATA[<p>Como comentamos en <a href="http://www.vivaelpixel.com/2009/12/promocion-online-y-seo-en-el-2010/" title="Promoción online y SEO en el 2010" target="_self" class="liinternal">un post anterior</a>, en el 2010 un factor importante en los resultados del nuevo algoritmo de búsqueda de Google (Caffeine) será la velocidad de carga de una página. Por lo tanto en nuestros sitios, es imprescindible analizar y optimizar varios factores relacionados. Además al optimizar el tiempo de carga de nuestro sitio también reduciremos el ancho de banda y, dependiendo del caso, los costes del alojamiento y mejoramos la experiencia de los usuarios.</p>
<h3>Análisis</h3>
<p>Para analizar fácilmente la velocidad de carga de nuestro sitio disponemos básicamente de dos extensiones para <a href="https://addons.mozilla.org/es-ES/firefox/addon/1843" target="_blank" class="liexternal">Firefox/Firebug</a>:</p>
<ol>
<li><a href="http://developer.yahoo.com/yslow/" target="_blank" class="liexternal">Yslow</a>, creada por Yahoo!</li>
<li><a href="http://code.google.com/intl/es-ES/speed/page-speed/" target="_blank" class="liexternal">Pagespeed</a>, creada por Google</li>
</ol>
<p>Estos complementos analizan múltiples factores y nos dan sugerencias para optimizar la página analizada. Las dos extensiones son muy parecidas tanto en las pruebas que ejecutan y las sugerencias que indican, pero en Yslow destaca la integración de <a href="http://developer.yahoo.com/yslow/smushit/" target="_blank" class="liexternal">Smush.it™</a>, un optimizador de imágenes. En cambio en Pagespeed, es muy destacable la opción de disponer, en caso de sugerencia, de las alternativas <em>minified</em> u optimizadas de las css y los js, como también analizar e indicar los selectores css poco eficientes.</p>
<h3>Optimización</h3>
<p>Dependiendo de cada servidor y aplicaciones instaladas tendremos que optimizar diferentes factores, pero a modo de ejemplo, en el servidor de este blog era necesario optimizar los <em>Cache-Control Header</em> y la compresión <em>gzip</em>. Tras buscar en Google y leer varios post realice los siguientes pasos para optimizar el servidor:</p>
<h4>1. Compresión gzip con mod_deflate</h4>
<p>Primero hay que activar <em>mod_deflate</em> desde la linea de comando</p>
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">a2enmod deflate</pre></div></div>
<p>Luego editar el archivo <em>deflate.conf</em> que se encuentra en <em>/etc/apache2/mods-available/deflate.conf</em></p>
<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">        AddOutputFilterByType DEFLATE text/plain
        AddOutputFilterByType DEFLATE text/html
        AddOutputFilterByType DEFLATE text/xml
        AddOutputFilterByType DEFLATE text/css
        AddOutputFilterByType DEFLATE text/javascript
        AddOutputFilterByType DEFLATE image/svg+xml
        AddOutputFilterByType DEFLATE image/x-icon
        AddOutputFilterByType DEFLATE application/xml
        AddOutputFilterByType DEFLATE application/xhtml+xml
        AddOutputFilterByType DEFLATE application/rss+xml
        AddOutputFilterByType DEFLATE application/javascript
        AddOutputFilterByType DEFLATE application/x-javascript
&nbsp;
        AddOutputFilterByType DEFLATE application/x-httpd-php
        AddOutputFilterByType DEFLATE application/x-httpd-fastphp
        AddOutputFilterByType DEFLATE application/x-httpd-eruby
&nbsp;
        DeflateCompressionLevel <span style="color: #ff0000;">9</span>
&nbsp;
<span style="color: #adadad; font-style: italic;"># Netscape 4.X tiene ciertas limitaciones</span>
        <span style="color: #00007f;">BrowserMatch</span> ^Mozilla/<span style="color: #ff0000;">4</span> gzip-only-text/html
&nbsp;
<span style="color: #adadad; font-style: italic;"># Netscape 4.06-4.08 tiene limitaciones</span>
        <span style="color: #00007f;">BrowserMatch</span> ^Mozilla/<span style="color: #ff0000;">4</span>\.0[<span style="color: #ff0000;">678</span>] no-gzip
&nbsp;
<span style="color: #adadad; font-style: italic;"># MSIE enmascarado como Netscape</span>
        <span style="color: #00007f;">BrowserMatch</span> \bMSIE !no-gzip !gzip-only-text/html
&nbsp;
<span style="color: #adadad; font-style: italic;"># Las siguientes lineas sirven para probar que la configuración funciona, en producción hay que comentarlas</span>
 DeflateFilterNote Input instream
 DeflateFilterNote Output outstream
 DeflateFilterNote Ratio ratio
 <span style="color: #00007f;">LogFormat</span> <span style="color: #7f007f;">'&quot;%r&quot; %{outstream}n/%{instream}n (%{ratio}n%%)'</span> deflate
 <span style="color: #00007f;">CustomLog</span> /var/log/apache2/deflate_log deflate</pre></div></div>
<h4>2. Expires headers mediante mod_expires</h4>
<p>Primero activamos el modulo</p>
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">a2enmod expires</pre></div></div>
<p>Luego editamos o creamos el archivo <em>expires.conf</em> en el directorio <em>/etc/apache2/mods-available/expires.conf</em></p>
<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #adadad; font-style: italic;">#        ExpiresDefault &quot;access plus 2 months&quot;</span>
&nbsp;
        <span style="color: #00007f;">ExpiresByType</span> image/x-icon <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> image/png <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> image/jpg <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> image/gif <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> image/jpeg <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> application/pdf <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> audio/x-wav <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> audio/mpeg <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> video/mpeg <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> video/mp4 <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> video/quicktime <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> video/x-ms-wmv <span style="color: #7f007f;">&quot;access plus 1 month&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> application/x-shockwave-flash <span style="color: #7f007f;">&quot;access 1 month&quot;</span>
&nbsp;
        <span style="color: #00007f;">ExpiresByType</span> text/css <span style="color: #7f007f;">&quot;access plus 1 hour&quot;</span>
        <span style="color: #00007f;">ExpiresByType</span> text/javascript <span style="color: #7f007f;">&quot;access plus 1 hour&quot;</span></pre></div></div>
<h4>3. Desactivar ETags</h4>
<p>Añadir las siguientes lienas al archivo <em>/etc/apache2/apache2.conf</em></p>
<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">Header</span> unset ETag
FileETag <span style="color: #0000ff;">None</span></pre></div></div>
<h4>4. Reiniciar Apache para activar los cambios</h4>
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 restart</pre></div></div>
<p>Ya solo queda volver a comprobar la página con las extensiones de Firebug y comparar los resultados.</p>
<h4>Enlaces de interes</h4>
<ul>
<li><a href="http://code.google.com/intl/es-ES/speed/page-speed/docs/rules_intro.html" target="_blank" class="liexternal">Recomendaciones sobre rendimiento web de Google</a></li>
<li><a href="http://developer.yahoo.com/performance/rules.html" target="_blank" class="liexternal">Recomendaciones de Yahoo!</a></li>
<li><a href="http://www.realityloop.com/blog/2009/08/19/optimizing-page-load-times-using-moddeflate-modexpires-etag-apache2" target="_blank" class="liexternal">Tutorial sobre Apache2, mod_deflate, mod_expires y ETag</a></li>
<li><a href="http://www.askapache.com/htaccess/apache-speed-etags.html" target="_blank" class="liexternal">Tutorial sobre ETag</a> (Esta web tiene otros posts relacionados con optimización de Apache)</li>
</ul>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Optimizaci%C3%B3n+pageload+en+Apache2+-+http://b2l.me/cqq9r&amp;source=shareaholic" rel="nofollow" class="external" title="&iexcl;Comp&aacute;rtelo en Twitter!">&iexcl;Comp&aacute;rtelo en Twitter!</a>
		</li>
		<li class="shr-meneame">
			<a href="http://meneame.net/submit.php?url=http://www.vivaelpixel.com/2010/01/optimizacion-pageload-en-apache2/" rel="nofollow" class="external" title="Enviar a Meneame">Enviar a Meneame</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.vivaelpixel.com/2010/01/optimizacion-pageload-en-apache2/&amp;title=Optimizaci%C3%B3n+pageload+en+Apache2&amp;summary=Como%20optimizar%20los%20tiempos%20de%20carga%20de%20una%20p%C3%A1gina%20en%20Apache2%2C%20con%20mod_deflate%2C%20mod_headers%2C%20mod_expires%20y%20Etag%20para%20mejorar%20el%20SEO%20y%20la%20experiencia%20de%20los%20usuarios.&amp;source=Viva el Pixel" rel="nofollow" class="external" title="Compartir con LinkedIn">Compartir con LinkedIn</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.vivaelpixel.com/2010/01/optimizacion-pageload-en-apache2/&amp;title=Optimizaci%C3%B3n+pageload+en+Apache2" rel="nofollow" class="external" title="&iexcl;Comp&aacute;rtelo con Digg!">&iexcl;Comp&aacute;rtelo con Digg!</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.vivaelpixel.com/2010/01/optimizacion-pageload-en-apache2/&amp;title=Optimizaci%C3%B3n+pageload+en+Apache2" rel="nofollow" class="external" title="Compartir con del.icio.us">Compartir con del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.vivaelpixel.com/2010/01/optimizacion-pageload-en-apache2/&amp;t=Optimizaci%C3%B3n+pageload+en+Apache2" rel="nofollow" class="external" title="Compartir con Facebook">Compartir con Facebook</a>
		</li>
		<li class="shr-bitacoras">
			<a href="http://bitacoras.com/anotaciones/http://www.vivaelpixel.com/2010/01/optimizacion-pageload-en-apache2/" rel="nofollow" class="external" title="Enviar a Bitacoras">Enviar a Bitacoras</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.vivaelpixel.com/2010/01/optimizacion-pageload-en-apache2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
