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

<channel>
	<title>Maestros del Web &#187; Javier Aroche</title>
	<atom:link href="http://www.maestrosdelweb.com/author/jaroche/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.maestrosdelweb.com</link>
	<description>Un espacio para los entusiastas del web</description>
	<lastBuildDate>Fri, 19 Mar 2010 07:00:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Internet Explorer 9: Microsoft se une al &#8220;hype&#8221; del HTML5</title>
		<link>http://www.maestrosdelweb.com/editorial/internet-explorer-9-html5/</link>
		<comments>http://www.maestrosdelweb.com/editorial/internet-explorer-9-html5/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 15:00:20 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Estándares]]></category>
		<category><![CDATA[Software Propietario]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[navegadores]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=7705</guid>
		<description><![CDATA[Hablar de Internet Explorer es hablar de heridas que probablemente no han sanado, recordar todos aquellos dolores de cabeza que nos provocó la terrible versión 6; muchos queremos que ya nadie siga usando IE6. A pesar de todo, Microsoft ha estado mejorando el Internet Explorer, en particular con IE8 en el que empezaron a darle [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2008/06/internetexplorer.png" alt="Internet Explorer" style="float:right;padding:5px" />Hablar de Internet Explorer es hablar de heridas que probablemente no han sanado, recordar todos aquellos dolores de cabeza que nos provocó la terrible versión 6; muchos <a href="http://www.maestrosdelweb.com/actualidad/aprendamos-de-los-noruegos-y-digamos-adios-al-ie6/">queremos que ya nadie siga usando IE6</a>. A pesar de todo, Microsoft ha estado <em>mejorando</em> el Internet Explorer, <a href="http://www.maestrosdelweb.com/actualidad/llega-la-beta-2-de-internet-explorer-8/">en particular con IE8</a> en el que empezaron a darle más importancia a los estándares web.</p>
<p>Ahora <a href="http://blogs.msdn.com/ie/archive/2010/03/16/html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers.aspx">hay noticias de lo que será la versión 9</a>, con la cual parece que Microsoft <strong>al fin logrará</strong> ponerse a la par del resto de navegadores. Y si, Microsoft también quiere participar del hype del HTML5. </p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2010/03/internet-explorer-9.jpg" alt="Internet Explorer 9" title="Internet Explorer 9" width="570" height="389" class="alignnone size-full wp-image-7708" /></p>
<p>Esta es la <strong>primera previa</strong> del IE9, la en la cual ya prometen:</p>
<ul>
<li>Video basado en HTML5 (&lt;video&gt;) usando el codec h.264, el mismo que usan Safari, Chrome y Opera.</li>
<li>Audio basado en HTML5 (&lt;audio&gt;) usando los codecs de MP3 y ACC.</li>
<li>Imágenes vectoriales basadas en <abbr title="Scalable Vector Graphics">SVG</abbr>, con lo cual quienes odian a Flash y piden a gritos su muerte, ya se podrán hacer animaciones.</li>
<li>Aceleración de video 2D para el renderizado CSS/Texto y SVG usando DirectX, por lo que parte de estas animaciones irían hacia el GPU, reduciendo la carga en el CPU.</li>
<li>Mejoras en el motor de Javascript, incluso en esta previa debería estar a una velocidad similar que Firefox 3.6 según los tests de SunSpider. Según Microsoft el motor de Javascript corre en un hilo (thread) aparte del navegador, si tienen un procesador de varios núcleos debería funcionar mejor. Pueden ver más detalles de esto en el <a href="http://ie.microsoft.com/testdrive/">sitio de pruebas de IE9</a>.<br />
<img src="http://www.maestrosdelweb.com/images/2010/03/ie9-javascript-speed.png" alt="" title="ie9 javascript speed" width="550" height="388" class="alignnone size-full wp-image-7709" style="margin:1em auto;display:block" />
</li>
<li>Soporte a todos <a href="http://www.w3.org/TR/css3-selectors/">los selectores CSS3</a>, incluso con esta primera previa todos deberían funcionar. También han agregado soporte a los bordes y fondos de CSS3 y varios niveles del <abbr title="Document Object Model">DOM</abbr>; solo hay que aclarar que Microsoft se basa estrictamente en la W3C, mientras que otros navegadores los han ido incluyendo usando su propia especificación (ej. <code>-moz-border-radius</code> en lugar de <code>border-radius</code>), por eso los datos de Microsoft son algo incorrectos.</li>
</ul>
<p>Bastantes novedades, ¿Pero qué tanto ha mejorado? Si usamos <a href="http://en.wikipedia.org/wiki/Acid3">la prueba ACID3</a> como referencia:</p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2010/03/ie9-acid3.png" alt="" title="ie9-acid3" width="550" height="442" class="alignnone size-full wp-image-7716" /></p>
<p>IE9 llega a 55/100. Sabiendo que Chrome, Safari, Opera y Firefox llegan al puntaje 100/100 (o casi) pareciera que falta aún por mejorar. Si tomamos en cuenta que IE8 apenas marcaba 20/100 en dicho test, deberíamos tener un poco de esperanzas que la versión final de IE9 no quedará tan mal.</p>
<p>De nuevo, esta apenas es una <strong>primera vista</strong> del motor IE9 <a href="http://ie.microsoft.com/testdrive/">y que ya pueden probarlo</a> en su PC, aunque no esperen tener un navegador funcional por ahora. </p>
<p>Honestamente IE9 luce bastante bien para quienes nos dedicamos a desarrollo web, el solo tener un mejor rendimiento de JavaScript y mejor soporte CSS y DOM ya nos ahorra dolores de cabeza. Quizás esta sea la versión en la que finalmente Microsoft se pueda reivindicarse y hacer que nos olvidemos de sus pasadas versiones&#8230; quizás.</p>
<p>Vale aclarar que IE9 solo va a correr en Windows 7 y Windows Vista, quienes aún usan Windows XP <strong>quedan fuera</strong>.</p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/internet-explorer-9-html5/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/internet-explorer-9-html5/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/internet-explorer-9-html5/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2008/06/internetexplorer.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2008/06/internetexplorer.png" medium="image">
			<media:title type="html">Internet Explorer</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2010/03/internet-explorer-9.jpg" medium="image">
			<media:title type="html">Internet Explorer 9</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/03/internet-explorer-9-150x150.jpg" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2010/03/ie9-javascript-speed.png" medium="image">
			<media:title type="html">ie9 javascript speed</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/03/ie9-javascript-speed-150x150.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2010/03/ie9-acid3.png" medium="image">
			<media:title type="html">ie9-acid3</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/03/ie9-acid3-150x150.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Como excluir categorías de la portada de un WordPress</title>
		<link>http://www.maestrosdelweb.com/editorial/excluir-categorias-wordpress/</link>
		<comments>http://www.maestrosdelweb.com/editorial/excluir-categorias-wordpress/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 15:00:18 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Gestores de Contenidos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=7646</guid>
		<description><![CDATA[Los desarrolladores de WordPress se han encargado de agregar muchas opciones al núcleo de este, una de estas es la posibilidad de manipular que posts de X categoría (o etiqueta) serán mostrados en la portada y demás secciones de un sitio.
Supongamos que tenemos la categoría &#8220;minipost&#8221; y que el ID de esta es el 19, [...]]]></description>
			<content:encoded><![CDATA[<p>Los desarrolladores de WordPress se han encargado de agregar muchas opciones al núcleo de este, una de estas es la posibilidad de manipular que posts de X categoría (o etiqueta) serán mostrados en la portada y demás secciones de un sitio.</p>
<p>Supongamos que tenemos la categoría &#8220;minipost&#8221; y que el ID de esta es el <code>19</code>, y queremos que los posts de esta categoría no salgan en la portada y el feed principal del blog; Dependiendo de como se categorizen los posts del blog, la categoría &#8220;miniposts&#8221; podría ser una &#8220;sección aparte&#8221; del sitio.</p>
<p>Para esto solo necesitamos agregar un pequeño plugin:</p>
<pre class="brush: php;">
&lt;?php
/*
Plugin Name: Excluir categorías
Plugin URI: http://www.maestrosdelweb.com
Description: Excluir categoriías de la portada de WordPress
Version: 0.2
Author: Javier Aroche
Author URI: http://www.maestrosdelweb.com
*/

function exclude_cat($query)
{
	if ( $query-&gt;is_home || ($query-&gt;is_feed &amp;&amp; $query-&gt;query_vars['category_name']=='') ) {
		$query-&gt;set('cat','-19');
	}
return $query;
}
add_filter('pre_get_posts','exclude_cat');
</pre>
<p>Toda la exclusión funciona gracias a <code>$query->set('cat','-19');</code> . Los valores negativos significan exclusión y los positivos, obviamente para incluir categorías. Esto se ejecutará cuando se está en la portada o en el feed de la portada. </p>
<p>Si quisiéramos excluir varias categorías, basta con separarlas por comas:</p>
<div class="codigo">
<pre>$query->set('cat','-19,-3,-26');</pre>
</div>
<p>También se pueden se pueden excluir de otras secciones del blog, digamos que en la categoría &#8220;Internet&#8221; tampoco se muestren los posts de &#8220;minipost&#8221; (o bien podrían no agregar la categoría Internet en primer lugar <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ). </p>
<p>Solo una <strong>aclaración</strong> sobre esto: WordPress tiene un <a href="http://core.trac.wordpress.org/ticket/5248">bug al excluir posts entre categorías</a>, ya lo había reportado hace tiempo; si quieren usar esta opción solo apliquen <a href="http://core.trac.wordpress.org/ticket/5248">el parche que subí</a> en el reporte del bug. El parche solo es necesario para excluir posts de una categoría (X), cuando se ven los de otra categoría (Y).</p>
<p>Una vez parchado WP, hay que agregar una condición más antes del <code>return $query;</code> :</p>
<pre class="brush: php;">
if ( $query-&gt;is_category &amp;&amp; $query-&gt;query_vars['category_name']!='minipost') {
	$query-&gt;set('cat','-19');
}
</pre>
<p>El valor de <code>$query->query_vars['category_name']</code> es el <em>category slug</em>.</p>
<p>Y así todos los posts de &#8220;minipost&#8221; quedan fuera del sitio, excepto cuando se visita la página de esta categoría (/category/minipost/) y el feed de esta. Esto es útil cuando se están mostrando en el sidebar del sitio usando <a href="http://codex.wordpress.org/Template_Tags/get_posts">get_posts()</a>, no tendría sentido mostrarlos dos veces <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/excluir-categorias-wordpress/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/excluir-categorias-wordpress/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/excluir-categorias-wordpress/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/autores/312.png" />
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Conectando sitios a Google Buzz via el Social Graph API</title>
		<link>http://www.maestrosdelweb.com/editorial/conectando-sitios-a-google-buzz-via-el-social-graph-api/</link>
		<comments>http://www.maestrosdelweb.com/editorial/conectando-sitios-a-google-buzz-via-el-social-graph-api/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 07:35:28 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[Servicios Web]]></category>
		<category><![CDATA[feeds]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Google Buzz]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[sindicacion]]></category>
		<category><![CDATA[Social Graph API]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=7414</guid>
		<description><![CDATA[En este punto creo que ya todos han probado Google Buzz, o de plano no usan Gmail para nada. A sido curioso ver que se ha ido armando un poco de discusión dentro de Buzz, de gente que tal vez no te siga en Twitter o Facebook pero ahora si en Buzz (gracias al autofollow). [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2010/02/google-buzz.png" alt="" title="google-buzz" width="80" height="69" style="float:right;padding:5px" />En este punto creo que ya todos <a href="http://www.maestrosdelweb.com/actualidad/google-buzz/">han probado Google Buzz</a>, o de plano no usan Gmail para nada. A sido curioso ver que se ha ido armando un poco de discusión dentro de Buzz, de gente que tal vez no te siga en Twitter o Facebook pero ahora si en Buzz (gracias al <em>autofollow</em>). </p>
<p>Un detalle de Google Buzz, a pesar de que está pensado para compartir cosas, no es intuitivo saber como agregar sitios/feeds para que se publiquen automáticamente dentro de tu cuenta.</p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2010/02/google-buzz-conectados.png" alt="Sitios conectados en Google Buzz" width="475" height="257" class="alignnone size-full wp-image-7415" /></p>
<p>Para agregar nuevos sitios a Google Buzz, este depende del <a href="http://code.google.com/apis/socialgraph/">Social Graph API</a> para descubrir nuevos sitios relacionados a tu cuenta. La idea detrás de esta dependencia es que solo el propietario del sitio pueda publicar sus contenidos en Buzz. Esto se demuestra usando el <a href="http://gmpg.org/xfn/">XHTML Friends Network</a> (XFN), que es un <a href="http://www.maestrosdelweb.com/editorial/microformatos/">microformato</a> para expresar relaciones entre sitios.</p>
<p>La primera cosa que hay que hacer <a href="https://www.google.com/profiles/me/editprofile">editar nuestro perfil en Google</a> y agregar el sitio que queramos en Buzz. Asegúrate de marcar el checkbox de que dicho sitio está relacionado contigo:</p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2010/02/google-profile-edit.png" alt="Agregar enlace en el pefil de Google" width="375" height="86" class="alignnone size-full wp-image-7417" /></p>
<p>Ahora para completar la relación con Social Graph, hay que agregar un enlace hacia tu perfil de Google, desde el los sitios que acabas de agregar:</p>
<div class="codigo">
<pre>
&lt;a rel="me" href="http://www.google.com/profiles/jaroche" <strong>rel="me"</strong> &gt;Perfil en Google&lt;/a&gt;
</pre>
</div>
<p>Noten la parte del <strong>rel=&#8221;me&#8221;</strong>, según el XFN indica que dicho enlace va a otro sitio tuyo. Si ya usas el widget de enlaces de Wordpress, este ya incluye soporte de XFN. Si lo que quieres es solo validar respecto al Social Graph API, pero sin que se muestre el enlace en la página, puedes agregar esto dentro del <code>&lt;head&gt;</code> del sitio:</p>
<div class="codigo">
<pre>
&lt;link rel="me" type="text/html" href="http://www.google.com/profiles/jaroche"/&gt;
</pre>
</div>
<p>Ahora a comprobar que todo esté bien, usaremos el <a href="https://sgapi-recrawl.appspot.com/">Recrawl Tool de Social Graph</a> para agilizar las cosas. Esta herramienta nos ayudará a comprobar que los sitios relacionados con nosotros enlacen de vuelta al perfil de google:</p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2010/02/recrawl-tool.png" alt="" title="recrawl-tool" width="500" height="91" class="alignnone size-full wp-image-7418" /></p>
<p>Si ya logramos que salga comprobada la relación, será cuestión de horas para que este sitio aparezca disponible entre los sitios conectados en Google Buzz. Ponen en cuenta que una vez conectado el sitio en Buzz, se publicará el contenido completo y hasta diría que es un poco difícil visitar el sitio original. </p>
<h3>Para sitios con varios autores</h3>
<p>Para los sitios con múltiples autores con Wordpress, hice un pequeño plugin para que cada uno pueda validar su página de autor dentro del blog (por ejemplo en nuestro caso: <a href="http://www.maestrosdelweb.com/autores/jaroche/">/autores/jaroche/</a>).</p>
<pre class="brush: php;">
function profilelink()
{
	global $wp_query;

	if ( !$wp_query-&gt;is_author ) return;

	$author = $wp_query-&gt;get_queried_object();
	$gtalk = get_the_author_meta( 'jabber', $author-&gt;ID );
	if ( !empty($gtalk) ) {
		$parts = explode( '@', $gtalk, 2);

		if ( isset( $parts[0] ) ): ?&gt;
		&lt;link rel=&quot;me&quot; type=&quot;text/html&quot; href=&quot;http://www.google.com/profiles/&lt;?=esc_attr($parts[0])?&gt;&quot;/&gt;
		&lt;? endif;
	}
}

add_action('wp_head', 'profilelink' );</pre>
<p>Todo lo que necesita hacer el autor es llenar el campo <strong>Jabber/Gtalk</strong> dentro de Wordpress, puede ser solo el nombre de usuario o con el &#8220;@gmail.com&#8221;. Pueden <a href="http://github.com/downloads/jaroche/mdw/wp-linkgoogleprofile.zip">descargar el plugin desde acá</a>.</p>
<p>El único problema que tiene esto con Buzz, es que este <strong>está tomando el feed</strong> general del sitio, no el de solo el autor, por lo que todas las entradas publicadas en el sitio saldrán también en su Buzz. Si alguien sabe como indicarle a Buzz que feed usar, se lo agradeceré <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>PD: Mi perfil de google <a href="http://www.google.com/profiles/jaroche">está por acá</a>.</p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/conectando-sitios-a-google-buzz-via-el-social-graph-api/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/conectando-sitios-a-google-buzz-via-el-social-graph-api/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/conectando-sitios-a-google-buzz-via-el-social-graph-api/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/02/google-buzz.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2010/02/google-buzz.png" medium="image">
			<media:title type="html">google-buzz</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2010/02/google-buzz-conectados.png" medium="image">
			<media:title type="html">google-buzz-conectados</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/02/google-buzz-conectados-150x150.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2010/02/google-profile-edit.png" medium="image">
			<media:title type="html">google-profile-edit</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/02/google-profile-edit-150x86.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2010/02/recrawl-tool.png" medium="image">
			<media:title type="html">recrawl-tool</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/02/recrawl-tool-150x91.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Es viernes! Dale mantenimiento a tu computadora</title>
		<link>http://www.maestrosdelweb.com/editorial/es-viernes-dale-mantenimiento-a-tu-computadora/</link>
		<comments>http://www.maestrosdelweb.com/editorial/es-viernes-dale-mantenimiento-a-tu-computadora/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 09:00:20 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Computadoras]]></category>
		<category><![CDATA[es viernes!]]></category>
		<category><![CDATA[mantenimiento]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=7387</guid>
		<description><![CDATA[Las computadoras necesitan ser limpiadas cada cierto tiempo para su correcto funcionamiento y prologar su vida; idealmente esto se debería realizar cada 3 meses, o más según las condiciones del ambiente en el que se mantenga la PC. Quitar el polvo de una computadora hará que esta se enfríe correctamente, en algunos casos que haga [...]]]></description>
			<content:encoded><![CDATA[<p>Las computadoras necesitan ser limpiadas cada cierto tiempo para su correcto funcionamiento y prologar su vida; idealmente esto se debería realizar cada 3 meses, o más según las condiciones del ambiente en el que se mantenga la PC. Quitar el polvo de una computadora hará que esta se enfríe correctamente, en algunos casos que haga menos ruido, evitará que la carga estática del polvo llegue a dañar algún componente. </p>
<h3>¿Qué necesito para limpiar mi computadora?</h3>
<p><a href="http://www.flickr.com/photos/jhf/2752034021/"><img src="http://farm4.static.flickr.com/3163/2752034021_308887c8a5_m.jpg" alt="Computadora con polvo" width="180" height="240" style="float:right;padding:5px"  /></a>En el caso de una computadora de escritorio solo necesitaras un destornillador, una aspiradora para soplar aire, una brocha/pincel, <a href="http://www.maestrosdelweb.com/principiantes/mantenimientopc/">seguir algunos consejos básicos de mantenimiento</a> y un poco de <strong>sentido común</strong>. </p>
<p>Probablemente deberías sacar el gabinete a un espacio abierto, por si este lleva muchos meses sin ser limpiado; procura enfocarte en el enfriador del CPU, la fuente de poder y cualquier otro componente que tenga un ventilador, allí es donde se acumula la mayoría del polvo y donde puede afectar más fácilmente, usa la bronca para quitar el polvo más resistente.</p>
<p>En el caso de una laptop deberías limpiar solo el exterior de esta; tampoco uses una aspiradora o compresor de aire, ya que las teclas de esta podrían dañarse o desprenderse. Hay buenas <a href="http://es.wikihow.com/limpiar-un-computador-port%C3%A1til-a-fondo">guías que te explican como limpiar el teclado de una laptop</a> y sus demás componentes. Si crees que tiene mucho polvo por dentro o sus ventiladores ya hacen ruido, puedes llevarla a un centro de servicio para que le hagan el mantenimiento de limpieza adecuado. </p>
<p>También puedes usar algún tipo de jabón líquido o siliconas, aplícalos primero en un paño y luego usa este para limpiar tu computadora o laptop; procura que el líquido no sea demasiado y que se filtre hacia los componentes internos del PC. No uses productos que puedan dañar los plásticos de tu PC, para limpiar muchas de las suciedades probablemente solo falte un poco de agua y paciencia.</p>
<h3>¿Qué puedo hacer para que se ensucie menos?</h3>
<p>Primero que todo, limpiarla regularmente no permitas que tenga una capa de polvo.</p>
<p style="text-align:center"><a href="http://www.flickr.com/photos/42177787@N04/3971852765/"><img src="http://www.maestrosdelweb.com/images/2010/02/3971852765_57faa47c1a.jpg" alt="" title="3971852765_57faa47c1a" width="475" height="285" class="alignnone size-full wp-image-7406" /></a></p>
<p>Si el gabinete de computadora está sobre el piso, prueba ponerla sobre el escritorio o al menos un poco más alto que el suelo; eso evitará que mucho del polvo que hay en el suelo llegue a esta. Apaga la computadora cuando estén haciendo la limpieza en la habitación donde está ubicada, el polvo que se sacude queda en el aire y llegar en mayor cantidad a la computadora por los ventiladores de esta. </p>
<p>No comas cerca de tu computadora, esto evitará que los restos de comida lleguen al teclado y mouse. Se cuidadoso con la bebidas y más si estas trabajando cerca de una laptop, una buena dosis de Coca Cola la puede mandar al otro mundo.</p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/es-viernes-dale-mantenimiento-a-tu-computadora/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/es-viernes-dale-mantenimiento-a-tu-computadora/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/es-viernes-dale-mantenimiento-a-tu-computadora/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:thumbnail url="http://farm4.static.flickr.com/3163/2752034021_308887c8a5_m.jpg" />
		<media:content url="http://farm4.static.flickr.com/3163/2752034021_308887c8a5_m.jpg" medium="image">
			<media:title type="html">Computadora con polvo</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2010/02/3971852765_57faa47c1a.jpg" medium="image">
			<media:title type="html">3971852765_57faa47c1a</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/02/3971852765_57faa47c1a-150x150.jpg" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Compartiendo un plugin para WordPress con muchos autores</title>
		<link>http://www.maestrosdelweb.com/editorial/plugin-wordpress-muchos-autores-creditos-feed/</link>
		<comments>http://www.maestrosdelweb.com/editorial/plugin-wordpress-muchos-autores-creditos-feed/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 21:54:45 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Gestores de Contenidos]]></category>
		<category><![CDATA[blogs]]></category>
		<category><![CDATA[feeds]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=7380</guid>
		<description><![CDATA[Al ser un sitio en el cual participan muchos autores, nos pasa que quienes nos siguen desde su lector de feeds no se percatan de quién es el autor de cada artículo. Para reforzar esto, hace algunas semanas agregamos en el feed del sitio, un crédito adicional al final de cada post. 
Otra ventaja de [...]]]></description>
			<content:encoded><![CDATA[<p>Al ser un sitio en el cual participan muchos autores, nos pasa que quienes nos siguen desde su lector de feeds no se percatan de quién es el autor de cada artículo. Para reforzar esto, hace algunas semanas agregamos en el feed del sitio, un crédito adicional al final de cada post. </p>
<p>Otra ventaja de agregar esto al feed, es que quienes publican nuestros contenidos tomados del feed (<em>scrapping</em>) en otros sitios, este crédito también saldrá en sus sitios enlazando al nuestro de vuelta y dejando en claro de donde viene el contenido. </p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2010/02/creditos-autor-feed.png" alt="creditos del autor en el feed" title="creditos del autor en el feed" width="439" height="96" class="alignnone size-full wp-image-7381" /></p>
<p>Esto es un sencillo plugin para Wordpress, similar al <a href="http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/">Ozh Better Feed</a> y sin tantas opciones como este, pero sin hacer una consulta adicional extra a la base de datos; me gustan más los plugins que agreguen la menor carga posible <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Algo adicional que agregué a este plugin fue la opción de mostrar el avatar del autor, si ya están usando el plugin de <a href="http://wordpress.org/extend/plugins/sem-author-image/">Author Image</a> usará los avatars de este, sino se usará Gravatar o en ultimo caso se mostrará la imagen predeterminada que ustedes definan. </p>
<pre class="brush: php;">
function rss_extracredit($content) {
	if(!is_feed()) return $content;

	$avatar = str_replace( ' /&gt;' , ' style=&quot;float:left;padding:0 5px&quot; /&gt;', get_author_avatar() );

	$author = get_the_author();
	$permalink = get_permalink();

	$content .= &quot;&lt;hr /&gt;&lt;p&gt;$avatar &lt;strong&gt;$author&lt;/strong&gt; para &lt;a href=\&quot;&quot; . get_bloginfo('url'). '&quot;&gt;'.get_bloginfo('name'). '.&lt;br /&gt;'
	.&quot;&lt;a href=\&quot;$permalink#respond\&quot;&gt;Agrega tu comentario&lt;/a&gt; | &lt;a href=\&quot;$permalink\&quot;&gt;Enlace permanente&lt;/a&gt; al artículo&lt;/p&gt;&quot;;

	return $content;
}

add_filter('the_content', 'rss_extracredit');
</pre>
<p>El plugin solo agrega este crédito al feed, pero si comentan la parte de: </p>
<div class="codigo">
<pre>if(!is_feed()) return $content;</pre>
</div>
<p>También lo agregará al sitio.</p>
<p>Les dejo el plugin (con licencia GPL 2) <a href="http://cloud.github.com/downloads/jaroche/mdw/wp-rsscredit.zip">para que lo descarguen</a> o bien <a href="http://github.com/jaroche/mdw/blob/master/wp-rsscredit/wp-rsscredit.php">pueden ver el código fuente en github</a>. Si lo instalan, solo falta definir una imagen predeterminar para cuando no se encuentra un avatar. Debería funcionar sin problemas, sino dejen un comentario por acá <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/plugin-wordpress-muchos-autores-creditos-feed/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/plugin-wordpress-muchos-autores-creditos-feed/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/plugin-wordpress-muchos-autores-creditos-feed/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/02/creditos-autor-feed-150x96.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2010/02/creditos-autor-feed.png" medium="image">
			<media:title type="html">creditos-autor-feed</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/02/creditos-autor-feed-150x96.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Cómo saber la ubicación de un usuario</title>
		<link>http://www.maestrosdelweb.com/editorial/detectar-ubicacion-usuario-geolocalizacion/</link>
		<comments>http://www.maestrosdelweb.com/editorial/detectar-ubicacion-usuario-geolocalizacion/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 15:00:54 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[geolocalización]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=7140</guid>
		<description><![CDATA[Más de alguna vez nos hemos topado con la situación en la que necesitamos saber desde que parte del mundo nos está visitando un usuario, y en base a eso mostrar o no cierto contenido. Acá veremos que opciones hay para determinar la ubicación de un visitante.
La forma tradicional: según la dirección IP

De hecho, hasta [...]]]></description>
			<content:encoded><![CDATA[<p>Más de alguna vez nos hemos topado con la situación en la que necesitamos saber desde que parte del mundo nos está visitando un usuario, y en base a eso mostrar o no cierto contenido. Acá veremos que opciones hay para determinar la ubicación de un visitante.</p>
<h3>La forma tradicional: según la dirección IP</h3>
<p><img src="http://www.maestrosdelweb.com/images/2010/02/geo.png" width="100" height="101" style="float:right;padding:5px"  /></p>
<p>De hecho, hasta hace un tiempo esta era la única forma de saber la procedencia de un visitante: tomar la dirección IP (pública) desde la cual recibimos la petición y compararla con una base de datos de IPs con sus posibles localizaciones. Para determinar la IP desde la cual nos visita el usuario, desde de php sería:</p>
<div class="codigo">
<pre>$ip = isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    ? $_SERVER['HTTP_X_FORWARDED_FOR']
    : $_SERVER['REMOTE_ADDR'];
</pre>
</div>
<p> Esta ip no representa el nodo real desde el cual nos visitan, pero usualmente es una buena aproximación del origen del usuario.</p>
<p>Existen varias bases de datos dedicadas a recopilar este tipo de información, quizás la más popular sea <a href="http://www.ipligence.com/free-ip-database">la versión gratuita de IPligence</a> (mientras no se use para fines comerciales y se les dé el crédito). Esta versión incluye 150,000 referencias por país, Microsiervos hizo un experimento en el que <a href="http://www.microsiervos.com/archivo/internet/ipligence-geolocalizacion.html">determinaron que es 95% exacta</a>.</p>
<p>Hay que tener en cuenta que IPligence te da su base de datos en formato CSV y con las IP&#8217;s convertidas a número enteros, pero <a href="http://www.ipligence.com/faq">ellos explican como hacer la conversión de IPs y como cargar</a> estos datos hacia un gestor de base de datos.</p>
<p>Otra opción son los datos de Hostip, un proyecto abierto que con ayuda de la comunidad y algunos <abbr title="Proveedores de servicios a Internet">ISPs</abbr> ha ido recolectando sus datos. Puedes <a href="http://www.hostip.info/dl/index.html">descargar la base de datos de IP&#8217;s</a>, o <a href="http://www.hostip.info/use.html">usar su API</a> incluso. </p>
<h3>Deja que el mismo usuario te diga con HTML5</h3>
<p><img src="http://www.maestrosdelweb.com/images/2010/02/phone.png" width="100" height="105" style="float:right;padding:5px"  /></p>
<p>Una de las nuevas funcionalidades de HTML5, es la posibilidad de saber la ubicación del usuario (una vez este lo autorice). Obviamente los navegadores aún tienen que implementar <a href="http://dev.w3.org/geo/api/spec-source.html">la especificación de Geolocalización del W3C</a>, que hasta el momento Firefox 3.5, el iPhone OS, Android y Google Chrome, entre otros, ya ofrecen esta opción. </p>
<p>Si nos basamos en la especificación del W3C, para detectar la ubicación del usuario es bastante sencillo:</p>
<pre class="brush: jscript;">
if (typeof navigator.geolocation == 'object'){
    navigator.geolocation.getCurrentPosition(mostrar_ubicacion);
}

function mostrar_ubicacion(p)
{
    alert('posición: '+p.coords.latitude+','+p.coords.longitude );
}
</pre>
<p>La exactitud dependerá del agente con el cual se intente detectar la ubicación, los móviles que cuentan con GPS obviamente serán mucho más exactos que <a href="http://mozillalabs.com/blog/2008/10/introducing-geode/">si se usan las redes WIFI cercanas</a> para adivinar la ubicación. </p>
<p>Tal vez convenga usar <a href="http://code.google.com/p/geo-location-javascript/">geo-location-javascript</a>, un framework que agrupa <a href="http://code.google.com/p/geo-location-javascript/wiki/SupportedPlatforms">varias propuestas de Geolocalización</a> (aparte de la del W3C) en un solo lugar. Usarlo es igual de sencillo:</p>
<pre class="brush: jscript;">
if(geo_position_js.init()){
   geo_position_js.getCurrentPosition(success_callback,error_callback);
}
else{
   alert("Functionality not available");
}

function success_callback() {...}
function error_callback() {...}
</pre>
<p>Hice un pequeño ejemplo <a href="http://www.maestrosdelweb.com/util/geo/geo.html">usando este framework para que lo prueben en su navegador</a>. Para ver como funciona, solo vean el código fuente o bien pueden <a href="http://github.com/jaroche/mdw/downloads">bajarlo desde github</a> <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Base de datos de IP&#8217;s vs HTML5</h3>
<p>Usar una base de datos de IP&#8217;s tiene la ventaja que todo funciona detrás, el usuario no debe autorizar el compartir su ubicación ni debe usar un navegador moderno; lo malo que estos datos son precisos solo a nivel de país y si el hardware del usuario ya cuenta con un GPS no lo estamos aprovechando. Dependiendo de lo que queramos hacer, probablemente el mejor enfoque sea usar una base de datos de IP&#8217;s sencilla y a la vez preguntarle al usuario que nos comparta su ubicación.</p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/detectar-ubicacion-usuario-geolocalizacion/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/detectar-ubicacion-usuario-geolocalizacion/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/detectar-ubicacion-usuario-geolocalizacion/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2010/02/geo.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2010/02/geo.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/images/2010/02/phone.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>¿Qué tal si revisas que tus backups sirvan realmente?</title>
		<link>http://www.maestrosdelweb.com/editorial/revisas-backups-respaldos-efectivos/</link>
		<comments>http://www.maestrosdelweb.com/editorial/revisas-backups-respaldos-efectivos/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 09:30:05 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[amazon s3]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[respaldos]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=7202</guid>
		<description><![CDATA[Los backups son una de las cosas que todo usuario prudente debería saber muy bien hacer y mantenerlos al día; no esperar a que La Ley de Murphy haga de las suyas con el fallo de un disco duro, o cualquier otro desastre que le pueda pasar a una computadora o servidor.
Después de todo, para [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/12/backup.png" alt="backup" title="backup" width="105" height="90" style="float:right;padding:5px"  />Los <abbr title="Copias de seguridad">backups</abbr> son una de las cosas que todo usuario prudente debería saber muy bien hacer y mantenerlos al día; no esperar a que <a href="http://es.wikipedia.org/wiki/Ley_de_Murphy">La Ley de Murphy</a> haga de las suyas con el fallo de un disco duro, o cualquier otro desastre que le pueda pasar a una computadora o servidor.</p>
<p>Después de todo, para mantener backups todo lo que se necesita son las herramientas apropiadas y principalmente la disciplina de crearlos constantemente; si crees que eres<strong> incapaz de tener tal responsabilidad</strong>, buscar algún programa o haz un script que se encargue por ti de general puntualmente los respaldos de tus archivos/sitios/bases de datos&#8230; a menos que quieras <a href="http://www.wired.com/epicenter/2009/01/magnolia-suffer/">que te suceda lo mismo que a Ma.gnolia</a> a inicios de este año.</p>
<p>Pero hay que tener algo claro: una cosa es <a href="http://www.joelonsoftware.com/items/2009/12/14.html">tener backups y otra haberse recuperado</a> a partir de estos; hay que estar seguros que realmente podamos recuperar toda (o casi) nuestra información, no solo los datos sino también configuraciones, compilaciones de los programas y metadata de la cual dependamos. </p>
<p>¿Alguna vez has hecho la simulación de recuperar tus datos a partir de tus backups? ¿Tienes una copia en otro Datacenter? ¿Sabes cuanto tiempo tardarás en tener todo de vuelta? ¿Estás seguro que si falla el disco duro del servidor, puedes recuperar todo? Todo esto viene a que Jeff Atwood, de Coding Horror, <a href="http://www.codinghorror.com/blog/archives/001315.html">recientemente tuvo un problema con su servidor</a> y de pronto casi había perdido todo sitio, por <strong>confiar los respaldos</strong> su información a terceros. </p>
<p>No es la primera vez que hablamos de backups, herramientas y sitios relacionados acá en Maestros del Web:</p>
<ul>
<li><a href="http://www.maestrosdelweb.com/editorial/es-viernes-has-un-respaldo-de-informacion/">Es viernes! qué tal si haces un respaldo de información</a></li>
<li><a href="http://www.maestrosdelweb.com/editorial/cuando-ultimo-respaldo-backup-informacion/">¿Cuándo hiciste el último respaldo de tu información?</a></li>
<li><a href="http://www.maestrosdelweb.com/editorial/programas-servicios-hacer-respaldo-informacion-backup/">Programas y servicios para hacer respaldo de tu información</a></li>
</ul>
<p>De hecho <strong>mientras escribía</strong> este artículo, hice una copia completa de los sitios que administro, incluyendo:</p>
<ul>
<li>Un .tar de los archivos de cada sitio.</li>
<li>Un sqldump de cada base de datos.</li>
<li>Copias de los httpd.conf, my.conf, php.ini y otros archivos relacionados con la configuración del servidor</li>
<li>Estas copias quedan en el disco secundario del servidor.</li>
<li>Aparte, todo esto lo envíe a <a href="http://www.maestrosdelweb.com/editorial/por-que-utilizar-s3-el-sistema-de-almacenamiento-de-amazon/">Amazon S3</a>, desde cada servidor. Cada cierto tiempo bajo una de las copias que están en S3 hacia mi máquina local.</li>
<li>Sumado a la copia diaria de los sitios que CPanel genera.</li>
</ul>
<p>Todo esto lo hago con la ayuda de un script basado en los comandos que toda distribución GNU/Linux incluye, para enviar archivos hacia S3 desde el servidor lo hago con <a href="http://s3sync.net/wiki">S3Sync</a>. </p>
<p>En el caso de mi Desktop, aunque la mayoría de datos ya están en la nube, trato de mantener al día mis respaldos hacia un disco duro externo y uso <a href="http://www.jungledisk.com">JungleDisk</a> para enviar lo más importante hacia S3</p>
<h3>&#8230; ¿Y si de pronto nuestros servidores/datacenter mueren?</h3>
<p>En el tiempo que tengo administrando sitios, ya he pasado por experiencias en las que debemos levantar una copia completa del sitio en otro servidor, y mientras menos tiempo pase abajo mejor. Idealmente tendríamos <a href="http://dyn.com/dd-analysis-authorize.net-outage">una infraestructura de respaldo capaz</a> de manejar todo el tráfico del sitio, y que se mantengan sincronizados respecto a nuestros backups, minimizando el tiempo que el sitio pasaría fuera de linea. </p>
<p>Otra idea, sería provechar el <a href="http://www.maestrosdelweb.com/editorial/cloud-computing-nueva-era-de-desarrollo/">Cloud hosting</a>, Amazon EC2 por ejemplo, mantener imágenes listas con las cuales podamos iniciar instancias y levantar nuestra infraestructura en la nube; pero con la ventaja que si no la usamos, <strong>pagaríamos un precio mucho menor</strong> que tener un servidor dedicado sin uso. </p>
<p>En fin, si aún no tienen backups completos de su información, háganlos ya mismo. Si ya los tienen, hagan una prueba para recuperarse a partir de estos. ¿Cuanto tiempo pueden perder? Seguro mucho menos que empezar a rescatar las cenizas en caso de desastre. Todo es cuestión de disciplina <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/revisas-backups-respaldos-efectivos/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/revisas-backups-respaldos-efectivos/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/revisas-backups-respaldos-efectivos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/12/backup.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/12/backup.png" medium="image">
			<media:title type="html">backup</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Google Public DNS: alterntiva a los DNS&#8217;s lentos</title>
		<link>http://www.maestrosdelweb.com/editorial/google-public-dns-servidores-eficientes/</link>
		<comments>http://www.maestrosdelweb.com/editorial/google-public-dns-servidores-eficientes/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 08:30:00 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[opendns]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=7135</guid>
		<description><![CDATA[Los servidores DNS son una de las partes más importantes de Internet, si uno está detrás de unos servidores lentos, la experiencia de navegación también será &#8220;lenta&#8221; a pesar de que se cuente con un enlace de velocidad decente. Google demuestra que tiene esto claro, con el reciente lanzamiento del Google Public DNS
Google Public DNS [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/07/servidor.png" alt="Servidor" style="float:right;padding:5px"  />Los servidores DNS son una de las partes más importantes de Internet, si uno está detrás de unos servidores lentos, la experiencia de navegación también será &#8220;lenta&#8221; a pesar de que se cuente con un enlace de velocidad decente. Google demuestra que tiene esto claro, con el reciente lanzamiento del <a href="http://googleblog.blogspot.com/2009/12/introducing-google-public-dns.html">Google Public DNS</a></p>
<p>Google Public DNS es como cualquier otro servicio de DNS&#8217;s, pero enfocado al <a href="http://code.google.com/speed/public-dns/docs/performance.html">mejor rendimiento</a>, <a href="http://code.google.com/speed/public-dns/docs/security.html">seguridad</a> y con el respaldo de un gigante como Google; algo contra lo que los Proveedores de Internet es difícil competir (sabiendo que muchos <a href="http://www.maestrosdelweb.com/editorial/problemas-con-los-dns-de-tu-isp-usa-opendns/">ni se preocupan mucho por sus servidores DNS</a>).</p>
<p>Para utilizar Google Public DNS basta con configurar el sistema para que utilice estas IPs (y hay que aceptarlo, bastante fáciles de memorizar):</p>
<ul>
<li><code>8.8.8.8 </code></li>
<li><code>8.8.4.4</code></li>
</ul>
<p>Este nuevo servicio de Google no es el primero en su tipo, <a href="http://www.maestrosdelweb.com/editorial/problemas-con-los-dns-de-tu-isp-usa-opendns/">ya habíamos mencionado a OpenDNS</a>, al cual en lo personal lo encuentro muy útil. Entre OpenDNS y Google Public DNS puedo destacar algunas diferencias:</p>
<ul>
<li>OpenDNS ofrece más controles y estadísticas sobre su servicio (al crear una cuenta con ellos), brinda la posibilidad de filtrar/bloquear dominios por categoría o especificar cuales. Algo interesante para empresas y familias. Google Public DNS solo resuelve nombres de dominio y ya, sin controles ni estadísticas.</li>
<li>OpenDNS debe ganar dinero de alguna parte, no tiene el capital de Google, es por eso que interceptan la resolución de dominios no existentes para mostrar anuncios, de hecho Google critica este comportamiento y garantiza que ellos no lo harán. De todas formas <a href="http://www.maestrosdelweb.com/editorial/haciendo-opendns-menos-molesto-privacidad/">esto se puede desactivar</a>.</li>
<li>OpenDNS también ofrece <a href="http://store.opendns.com/">un servicio de pago enfocado a empresas</a>, con SLA y algunas opciones extras. Google Public DNS de momento no cuenta con ningún tipo de servicio especial</li>
</ul>
<p>Para los conspiracionistas y <a href="http://www.maestrosdelweb.com/actualidad/el-cloud-computing-no-es-estupido/">los que prefieren mantener su alma lejos de La Nube</a>, este sería <strong>otro punto más</strong> por donde <a href="http://www.businessinsider.com/now-google-wants-to-control-even-more-of-your-internet-2009-12">Google estaría recolectando datos y comportamientos</a> de los usuarios y sitios que visitan (y que el fundador de OpenDNS <a href="http://blog.opendns.com/2009/12/03/opendns-google-dns/">no tardó en insinuar</a>). Google <a href="http://code.google.com/speed/public-dns/faq.html#privacy">aclara que ciertos datos</a> (no personales) solo se usarán para análisis internos y mejoras a la infraestructura de su servicio. Queda en cada quién creerles o no <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Vale aclarar que OpenDNS y Google Public DNS solo resuelven nombres de dominio, no son servicios para hospedar la zona de un dominio en particular, <a href="http://www.maestrosdelweb.com/editorial/si-tu-dominio-importa-usar-servidor-dns-externo/">para eso hay otras opciones</a>. </p>
<p>En fin, si me preguntan yo seguiré usando OpenDNS ya que si estoy utilizando los filtros de dominios; pero aún así Google Public DNS parece una buena alternativa para quienes están detrás de un DNS lento o que tarda demasiado en actualizar los cambios en los registros de los dominios.</p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/google-public-dns-servidores-eficientes/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/google-public-dns-servidores-eficientes/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/google-public-dns-servidores-eficientes/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/07/servidor.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/07/servidor.png" medium="image">
			<media:title type="html">Servidor</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Vistazo al iWeekend México</title>
		<link>http://www.maestrosdelweb.com/actualidad/iweekend-mexico-2009/</link>
		<comments>http://www.maestrosdelweb.com/actualidad/iweekend-mexico-2009/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 07:20:57 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Actualidad]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[emprendimiento]]></category>
		<category><![CDATA[iweekend]]></category>
		<category><![CDATA[iwmx]]></category>
		<category><![CDATA[startups]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=7095</guid>
		<description><![CDATA[ El fin de semana pasado México dio lugar al primer iWeekend en Latino América, evento enfocado a promocionar la cultura de emprender en las nuevas tecnologías. Tuve la oportunidad de participar en este (mi primer) iWeekend junto a casi 40 asistentes más.
Es interesante presenciar como evoluciona una idea, pasando desde el plan de negocio [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/11/iweekend.png" alt="iweekend" title="iweekend" width="140" height="140" class="alignnone size-full wp-image-7096" style="float:right;padding:5px"  /> El fin de semana pasado <a href="http://www.maestrosdelweb.com/actualidad/iweekend-mexico/">México dio lugar al primer iWeekend</a> en Latino América, evento enfocado a promocionar la cultura de emprender en las nuevas tecnologías. Tuve la oportunidad de participar en este (mi primer) iWeekend junto a casi 40 asistentes más.</p>
<p>Es interesante presenciar como evoluciona una idea, pasando desde el plan de negocio hasta algo del código; apreciar la <em>sinergia</em>  que surge al juntar personas con diferentes especialidades, pero con el interés de aprender a como hacer rentable una idea. Pero quizás más importante que eso, fue <em>hacer contactos</em>, ya que después de todo <a href="http://www.cristalab.com/blog/internet-es-un-pueblito-c67285l/">Internet es un pueblito</a>. Nunca sabes cuando te podrían servir <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align:center"><a href="http://aroche.net/fotos/iweekend-mexico-2009/"><img src="http://www.maestrosdelweb.com/images/2009/11/IMG_3441.JPG" alt="IMG_3441" title="Fotos del iWeekend México" width="470" height="352" /></a></p>
<p>Me gustó bastante los comentarios de quienes llegaron como mentores a este iWeekend:</p>
<ul>
<li>Justin Wright de <a href="http://kickstartseedfund.com/">KickStart</a>.</li>
<li><a href="http://cesarsalazar.mx/">Cesar Salazar</a>.</li>
<li>Raúl Ramírez, mejor conocido por escribir en <a href="http://isopixel.net/">Isopixel</a>.</li>
<li><a href="http://www.areaestrategica.com/">Gustavo Arezpe</a>.</li>
<li>Artugo Garrido, creador de <a href="http://twitea.me/">Twitea.me</a>.</li>
</ul>
<p><img src="http://www.maestrosdelweb.com/images/2009/11/mapatlan.png" alt="mapatlan" title="mapatlan" width="140" height="31" style="float:right;padding:5px"  /> El proyecto elegido en este iWeekend fue <a href="http://twitter.com/mapatlan">Mapatlan</a>, idea para colocar historias en un mapa similar a <a href="http://wikimapia.org/">Wikimapia</a>, pero enfocado más a historias que a lugares. Para <a href="http://twitter.com/tacastil">Tania Castillo</a>, la emprendedora detrás de este proyecto, se lleva una buena dirección para este y muchas ideas de como seguir adelante. Esperamos pronto saber más de como ha evolucionado este proyecto, y aún mejor si sabemos que el resto de proyectos presentados en este iWeekend logran concretar algo.</p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/actualidad/iweekend-mexico-2009/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/actualidad/iweekend-mexico-2009/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/actualidad/iweekend-mexico-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/11/iweekend.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/11/iweekend.png" medium="image">
			<media:title type="html">iweekend</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/11/IMG_3441.JPG" medium="image">
			<media:title type="html">Fotos del iWeekend México</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/11/mapatlan.png" medium="image">
			<media:title type="html">mapatlan</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Primera Campus Party en México</title>
		<link>http://www.maestrosdelweb.com/actualidad/campus-party-mexico-2009/</link>
		<comments>http://www.maestrosdelweb.com/actualidad/campus-party-mexico-2009/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 09:10:30 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Actualidad]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[campus party]]></category>
		<category><![CDATA[mexico]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=7074</guid>
		<description><![CDATA[ México se unió a los países que realizarán un evento Campus Party regularmente (tercero en América luego de Brazil y Colombia). Está es la primera vez que tengo la oportunidad de participar en uno de estos eventos, y sinceramente ha llenado mis expectativas. 
Aún cuando sigue siendo el mismo modelo de las ediciones anteriores [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/11/campus-party-logo.png" alt="campus-party-logo" title="campus-party-logo" width="148" height="86" style="float:right;padding:5px"  /> México se unió a los países que <a href="http://www.campus-party.com.mx/">realizarán un evento Campus Party</a> regularmente (tercero en América luego de <a href="http://www.maestrosdelweb.com/actualidad/al-regreso-de-una-semana-de-campus-party-en-brasil/">Brazil</a> y <a href="http://www.maestrosdelweb.com/actualidad/desde-la-campus-party-de-colombia/">Colombia</a>). Está es la primera vez que tengo la oportunidad de participar en uno de estos eventos, y sinceramente ha llenado mis expectativas. </p>
<p>Aún cuando sigue siendo el mismo modelo de las ediciones anteriores de otros países, no es lo mismo verla de lejos <strong>que vivirla</strong>.</p>
<p style="text-align:center"><a href="http://a.com.gt/log/campus-party-a-las-230am"><img src="http://www.maestrosdelweb.com/images/2009/11/campus-party-mexico-2009.jpg" alt="campus party mexico 2009" title="campus party mexico 2009" width="480" height="360" /></a></p>
<p>Tener presencia en una Campus Party es bastante agitado: Debes prepararte para largas filas de personas (en el primer y último día), estar pendiente de la agenda y los cambios en esta, los 4Gbps del enlace a Internet en la Campus, garantizan que casi cualquier lista de cosas por descargar se termine; y hay mucha gente con la cual puedes compartir y <em>socializar físicamente</em>. </p>
<h3>El ambiente de la Campus</h3>
<p><a href="http://www.flickr.com/photos/j_aroche/4099402235/" title="Equipaje sin dueño..."><img src="http://farm3.static.flickr.com/2766/4099402235_ae4bc8813d_m.jpg" width="240" height="180" style="float:right;padding:5px"  alt="Equipaje sin dueño..." /></a> Una de las cosas que más me agradó fue el ambiente de la Campus Party, saber que podías dejar tus cosas en tu puesto para atender alguna charla, y saber que al regresar <strong>allí estarían</strong>. Ese aire de respeto muto (salvo algunas excepciones), porque que al final de cuentas todos estábamos lejos de casa. </p>
<p>Yo tuve le gusto de saludar a viejos amigos que he conocido en eventos anteriores, conocer a algunas <em>estrellas</em> en twitter, e hice mi esfuerzo por charlar con tantas personas como me fue posible. Fue algo irónico que al tener un excelente enlace a Internet, <strong>la mayor parte del tiempo la pase alejado</strong> de mi netbook.</p>
<h3>Las charlas y exposiciones</h3>
<p>En las charlas hubieron de todos niveles, por mi parte aproveché para aprender más de <a href="http://vimeo.com/7636363">Overclocking</a> y Astronomía, para no seguir escuchando de los mismos temas de siempre <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  . Vale notar que el <a href="http://www.campus-party.com.mx/Cultura-Digital.html">área de Cultura Digital</a> fue la que más charlas tuvo y la que más audiencia llego a tener. <a href="http://www.flickr.com/photos/j_aroche/4114591458/" title="Campus Experience y Campus Party by Javier Aroche, on Flickr"><img src="http://farm3.static.flickr.com/2626/4114591458_bc1fe6c828_m.jpg" width="240" height="180" alt="Campus Experience y Campus Party" style="float:right;padding:5px" /></a> Definitivamente oportunidades para documentarse en una nueva área no faltaron, y por lo que vi muchas personas las aprovecharon. Campus Party no solo fue un lugar de ocio con una super conexión, sino también un evento educativo.</p>
<p>Por otra parte el área de <a href="http://www.campus-party.com.mx/campus-futuro.html">Campus Experience</a> fue muy interesante, presentando algunas ideas de realidad virtual, automatización e interfaces alternativas.  Mi favorita fue definitivamente la del &#8220;Laberinto en el cubo&#8221;:</p>
<p style="text-align:center"><object width="475" height="356"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7637404&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=E4F2FD&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7637404&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=E4F2FD&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="475" height="356"></embed></object></p>
<p>Si por alguna razón no pudieron asistir al Campus Party de México, puede revisar <a href="http://www.flickr.com/photos/campuspartymexico">las fotos oficiales en flickr</a>, el tag &#8220;<a href="http://www.flickr.com/photos/tags/campuspartymx">campuspartymx</a>&#8221; y los <a href="http://www.youtube.com/campusparty">videos en youtube</a>&#8230; al menos para darse una idea de lo que fue.</p>
<p>Esta es la segunda vez que visito México y me llevo una buena impresión de este país y de la calidez de su gente. Fue curioso encontrarme con otros mexicanos que visitaban por primera vez el Distrito Federal, vaya enorme ciudad. Aún seguiré algunos días por acá conociendo un poco más de México.</p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/actualidad/campus-party-mexico-2009/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/actualidad/campus-party-mexico-2009/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/actualidad/campus-party-mexico-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/11/campus-party-logo.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/11/campus-party-logo.png" medium="image">
			<media:title type="html">campus-party-logo</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/11/campus-party-mexico-2009.jpg" medium="image">
			<media:title type="html">campus party mexico 2009</media:title>
		</media:content>
		<media:content url="http://farm3.static.flickr.com/2766/4099402235_ae4bc8813d_m.jpg" medium="image">
			<media:title type="html">Equipaje sin dueño...</media:title>
		</media:content>
		<media:content url="http://farm3.static.flickr.com/2626/4114591458_bc1fe6c828_m.jpg" medium="image">
			<media:title type="html">Campus Experience y Campus Party</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Wordpress 2.8.5</title>
		<link>http://www.maestrosdelweb.com/editorial/wordpress-2-8-5/</link>
		<comments>http://www.maestrosdelweb.com/editorial/wordpress-2-8-5/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 01:40:08 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Gestores de Contenidos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[actualizacion]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6893</guid>
		<description><![CDATA[ Si, ya hay otra nueva actualización de Wordpress (2.8.5) que viene a solucionar algunos problemas de seguridad. Tampoco significa que si no actualizas cuanto antes vayan a entrar en tu blog, podrían hacer que tu sitio consuma más recursos de los que debería. De todos modos deberías actualizar, no te quita más de unos [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/wordpress_ico.jpg" alt="Wordpress Logo" style="float:right;padding:5px" /> Si, ya hay <a href="http://wordpress.org/development/2009/10/wordpress-2-8-5-hardening-release/">otra nueva actualización de Wordpress (2.8.5)</a> que viene a solucionar algunos problemas de seguridad. Tampoco significa que si no actualizas cuanto antes vayan a <em>entrar</em> en tu blog, podrían hacer que tu sitio consuma más recursos de los que debería. De todos modos deberías actualizar, no te quita más de unos minutos.</p>
<p>El problema principal que soluciona esta actualización tiene que ver con los <em>trackbacks</em> y un ataque especial que puede afectar a cualquier blog que una versión anterior a Wordpress 2.8.5. El ataque está <a href="http://rooibo.wordpress.com/2009/10/17/agujero-de-seguridad-en-wordpress/">explicado a detalle en Desvaríos informáticos</a> (y en mi opinión un tanto exagerado sobre el impacto en la seguridad). Dicho ataque tiene que ver con la función <code>mb_convert_encoding()</code> y de como Wordpress maneja los valores de entrada. Este es el código en donde se utiliza <code>mb_conver_encoding()</code>:</p>
<pre class="brush: php;">if ( function_exists(’mb_convert_encoding’) ) { // For international trackbacks
   $title     = mb_convert_encoding($title, get_option(’blog_charset’), $charset);
   $excerpt   = mb_convert_encoding($excerpt, get_option(’blog_charset’), $charset);
   $blog_name = mb_convert_encoding($blog_name, get_option(’blog_charset’), $charset);
}
</pre>
<p>El valor de<code> $charset</code> viene de <code>$_POST['charset']</code> y contiene los juegos de caracteres (separador por coma) que posiblemente se hayan usado en los textos de la petición; no se controla su valor ni le limita su tamaño. El problema viene a ser cuando se utiliza como argumento en <code>mb_convert_encoding()</code>, si se envía una petición donde <code>$title</code> y <code>$charset</code> sean absurdamente grandes (350KB según el ejemplo en <em>Desvaríos informáticos</em>), <code>mb_convert_encoding()</code> haría demasiadas comprobaciones, tomando hasta varios minutos por cada petición. </p>
<p>El impacto obviamente depende de la configuración del servidor y las capacidades de este, pero como la mayoría <strong>no tenemos</strong> un servidor dedicado, nos dejarán con el servidor <em>atascado</em>. La solución a este problema consiste en limitar <code>$charset</code> para que solo permita indicar un juego de caracteres (al eliminar las comas):</p>
<div class="codigo">
<pre>
$charset = str_replace( array(',', ' '), '', strtoupper( trim($charset) ) );
</pre>
</div>
<p>Solo queda el caso de si <code>$_POST['charset']</code> fue definido como un Array (y que Wordpress no lo soluciona explícitamente) ya que <code>mb_convert_encoding()</code> también permite definir la lista de juegos de caracteres de esta forma. Por si acaso, modifiqué el parche de Wordpres incluyendo:</p>
<div class="codigo">
<pre>$charset = (string) $_POST['charset'];</pre>
</div>
<p>Con eso debería cerrarse la puerta a problemas por esa parte. Wordpress 2.8.5 soluciona otros problemas menores que nunca dejan de aparecer, pueden ver <a href="http://core.trac.wordpress.org/changeset?new=12077%40branches%2F2.8&#038;old=11811%40branches%2F2.8">la lista completa de cambios</a> y bajar solo los archivos modificados desde Wordpress 2.8.4</p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/wordpress-2-8-5/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/wordpress-2-8-5/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/wordpress-2-8-5/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/wordpress_ico.jpg" />
		<media:content url="http://www.maestrosdelweb.com/images/wordpress_ico.jpg" medium="image">
			<media:title type="html">Wordpress Logo</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Ventajas de usar un (sub)dominio para contenido estático</title>
		<link>http://www.maestrosdelweb.com/editorial/ventajas-subdominio-contenido-estatico/</link>
		<comments>http://www.maestrosdelweb.com/editorial/ventajas-subdominio-contenido-estatico/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 01:08:11 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6800</guid>
		<description><![CDATA[No hay quién no sueñe con que el tráfico de su sitio crezca lo más posible, y eso también significa invertir en mejores servidores. Como vimos anteriormente, según las condiciones del servidor, un servidor web (comúnmente hablamos de Apache) solo puede atender simultáneamente a un número limitado de clientes. 
Cuando un servidor web ya no [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/07/servidor.png" alt="Servidor" style="float:right;padding:5px"  />No hay quién no sueñe con que el tráfico de su sitio crezca lo más posible, y eso también significa invertir en mejores servidores. Como vimos anteriormente, según las condiciones del servidor, un servidor web (comúnmente hablamos de Apache) <a href="http://www.maestrosdelweb.com/editorial/entendiendo-los-modos-multiproceso-de-apache/">solo puede atender simultáneamente a un número limitado de clientes</a>. </p>
<p>Cuando un servidor web ya no puede mantener todas las peticiones de un sitio por si solo, una buena forma de aliviar la carga en este, es utilizar un (sub)dominio adicional en un servidor aparte. En este vamos a hospedar todo el contenido estático, como:</p>
<ul>
<li>Archivos relacionados a la plantilla: imágenes, archivos de javascript y <a href="http://www.maestrosdelweb.com/editorial/desarrollo-web/css/">hojas de estilos</a></li>
<li>Imágenes usadas para complementar el contenido, dependiendo del Gestor de contenidos este podría automatizar el proceso de subida hacia el otro servidor</li>
<li>Archivos complementarios como PDF&#8217;s, MP3&#8217;s, Videos o cualquier otro archivo que no sea generado dinámicamente</li>
</ul>
<p>La idea es contar con un segundo servidor que utilice muy pocos recursos y que <a href="http://www.maestrosdelweb.com/editorial/optimizar-el-css-sin-usar-php/">responda con los encabezados (headers) apropiados</a> para que cada cliente mantenga estos archivos en su caché local. Al hacer esto, podemos reconocer algunas ventajas:</p>
<h3>Balanceo de carga</h3>
<p>Obviamente la primer meta de contar con un servidor adicional para contenido estático, es quitar carga del servidor principal, encargado de generar las páginas de nuestro sitio. Este otro servidor puede ser un más sencillo que el principal, <a href="http://www.maestrosdelweb.com/editorial/entendiendo-los-modos-multiproceso-de-apache/">si lo configuramos para utilizar Worker</a> o algún servidor web alternativo como Lighttp, NGnix, etc.</p>
<p>Para lograr este &#8220;balanceo de carga&#8221; es tan fácil como modificar el código generado para que se enlacen a los archivos en el dominio alternativo. Por ejemplo, en <a href="http://www.forosdelweb.com">Foros del Web</a> utilizamos el subdominio static.forosdelweb.com, Yahoo usa el dominio yimg.com, La familia de sitios de Stack Overflow usan sstatic.net. </p>
<p>Por supuesto al llegar a tener un tráfico mucho mayor se llegará a necesitar un balanceo de carga real, con un proxy <em>en frente</em> de los servidores web, y mover el contenido estático a un CDN profesional como <a href="http://www.maestrosdelweb.com/editorial/por-que-utilizar-s3-el-sistema-de-almacenamiento-de-amazon/">Amazon S3</a>/CloudFront o similares.</p>
<h3>Libre de cookies</h3>
<p>Cuando enviamos una cookie al usuario, su navegador nos la enviará junto a todas las peticiones, sean páginas o imágenes. Esto es un problema, ya que hará que <a href="http://developer.yahoo.net/blog/archives/2009/10/a_engineers_gui.html">las peticiones/paquetes sufran mayor fragmentación</a>. Yahoo hizo <a href="http://yuiblog.com/blog/2007/03/01/performance-research-part-3/">un estudio sobre el impacto del tamaño las cookies y el incremento en el tiempo de respuesta</a> del servidor, de alli se concluye que es mejor reducir al mínimo posible el tamaño (si usas un CMS esto es complicado), o aún mejor que los recursos que no necesiten de estas estén en un dominio aparte, libre de cookies.</p>
<h3>Descargas paralelas</h3>
<p>La especificación del HTTP/1.1 sugiere que cada navegador limite el número de descargas simultaneas a 2, para un mismo host. Si tenemos un dominio adicional, esto <a href="http://www.yuiblog.com/blog/2007/04/11/performance-research-part-4/">debería darnos otras 2 descargas paralelas adicionales</a>, reduciendo el tiempo necesario para cargar el sitio. Tampoco significa que debemos agregar varios subdominios con tal de tener muchas descargas paralelas, el incremento en consultas DNS y uso del conexiones adicionales degrada la ventaja de que se hagan en paralelo. </p>
<h3>¿Desventajas?</h3>
<p>No puedo pensar en desventajas reales de usar un dominio para contenido estático, más que:</p>
<ul>
<li>Que los ingresos y el tráfico del sitio no justifiquen el gasto en un servidor adicional o en pagar los gastos de usar Amazon S3.</li>
<li>Tener un servidor adicional que no soporte la carga del contenido estático, haciendo que el tiempo de carga del sitio sea mayor.</li>
<li>Que el gestor de contenidos por alguna razón dificulte, o no se tenga el conocimiento para hacer que ciertos recursos se enlacen al otro dominio. </li>
</ul>
<p>¿Alguna otra ventaja o desventaja? ¿Experiencias al respecto? Dejen nos un comentario <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/ventajas-subdominio-contenido-estatico/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/ventajas-subdominio-contenido-estatico/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/ventajas-subdominio-contenido-estatico/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/07/servidor.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/07/servidor.png" medium="image">
			<media:title type="html">Servidor</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Entendiendo los modos multiproceso de Apache</title>
		<link>http://www.maestrosdelweb.com/editorial/entendiendo-los-modos-multiproceso-de-apache/</link>
		<comments>http://www.maestrosdelweb.com/editorial/entendiendo-los-modos-multiproceso-de-apache/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 20:01:53 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6791</guid>
		<description><![CDATA[El servidor web Apache 2.x puede ser configurado para manejar las peticiones de diferente forma, desde el punto de vista en que son creados y manejados los subprocesos necesarios que atienden a cada cliente conectado a este. 
Multiproceso tipo Prefork

Apache inicia varios subprocesos y cada petición es atendida por uno de estos; cuando termina con [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/10/apache-logo.jpg" alt="apache-logo" title="apache-logo" width="190" height="90" style="float:right;padding:5px"  />El servidor web Apache 2.x puede ser configurado para manejar las peticiones de diferente forma, desde el punto de vista en que son creados y manejados los subprocesos necesarios que atienden a cada cliente conectado a este. </p>
<h3>Multiproceso tipo Prefork</h3>
<ul>
<li>Apache inicia varios subprocesos y cada petición es atendida por uno de estos; cuando termina con esta petición este subproceso podría atender a otro cliente o ser terminado, según al valor de <code>MaxRequestsPerChild</code>.</li>
<li>Es el modo más estable, ya que un error crítico solo afectaría a una petición. Este es el único modo en que se pueden usar módulos / extensiones que no sean <a href="http://es.wikipedia.org/wiki/Thread-Safety" rel="nofollow">Thread-Safe</a>.</li>
<li>Requiere más recursos (Memoria RAM y CPU) para atender cierto número de peticiones simultaneas, respecto a otras configuraciones. Esto limita drásticamente la escabilidad del servidor.</li>
<li>Favorece el uso intensivo de PHP. <a href="http://www.maestrosdelweb.com/editorial/aceleradores-de-php/">Los aceleradores de PHP no son Thread-Safe</a>, pero al usarlos junto a Prefork podemos justificar el mayor uso de php (o páginas sin ningún tipo de caché, aparte del acelerador en sí).</li>
<li>Prefork es la configuración predeterminada en la mayoría de instalaciones.</li>
</ul>
<h3>Multiproceso tipo Worker</h3>
<ul>
<li>Apache inicia varios subprocesos y estos a su vez mantienen varios hilos (threads) con los cuales procesaran las peticiones. Un subproceso proceso puede <strong>atender a varios</strong> clientes a la vez, según se indique en <code>ThreadsPerChild</code>.</li>
<li>El hecho de que un subproceso pueda manejar varias peticiones a la vez, hace que se requieran menos recursos para atender a cierto número de peticiones simultaneas.</li>
<li>El inconveniente de Worker está en que requiere que todos los módulos/extensiones que se vayan a usar sean Thread-Safe, limitando el tipo de procesamiento que se puede llevar a cabo con el servidor web.</li>
<li>Un fallo crítico (que el subproceso termine repentinamente) afecta a varias peticiones, por eso se requiere que se cumpla el Thread-Safe.</li>
<li>Ya que no se pueden usar aceleradores de PHP junto a Worker, el uso intensivo de este debería ser evitado con algún tipo de sistema de caché adicional (si fuera Wordpress usaría WP-Cache).</li>
<li>Worker puede ser una buena solución para un servidor de contenido estático.</li>
<li>Worker solo está disponible desde Apache 2.x .</li>
</ul>
<h3>Prefork vrs Worker</h3>
<p>Para darles una idea de la diferencia en el consumo de recursos entre Prefork y Worker, los he utilizado en las siguientes condiciones:</p>
<ul>
<li>Prefork en un servidor bastante poderoso  (8 núcleos y 4GB de RAM), manejando casi solo contenido generado desde PHP y <a href="http://www.maestrosdelweb.com/editorial/aceleradores-de-php/">con XCache instalado</a>. El contenido estático se sirve desde otro servidor.</li>
<li>Worker en un servidor sencillo (2 núcleos y 4GB RAM), más que todo contenido estático. La mayoría del contenido generado con PHP queda almacenado en cachés (siendo a la larga contenido estático).</li>
</ul>
<p>Carga promedio del servidor configurado con Prefork:</p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2009/10/apache-prefork.png" alt="apache-prefork" title="apache prefork" width="499" height="324" /></p>
<p>Carga promedio del servidor configurado con Worker:</p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2009/10/apache-worker.png" alt="apache worker" title="apache worker" width="499" height="325" class="alignnone size-full wp-image-6794" /></p>
<ul>
<li>El servidor de 8 núcleos (Prefork) promedia una carga del servidor mucho más alta, que el servidor de 2 núcleos (Worker).</li>
<li>Si hablamos solamente las peticiones simultaneas que cada uno puede manejar, el servidor con Worker puede manejar casi el doble que el servidor con Prefork, y aún con una carga en el servidor más baja. Manejaría muchas más antes de que el servidor llegue a su límite. Para que Prefork llegue a estos niveles, tendríamos que lidear con el <code>ServerLimit</code> (que en CentOS significa modificar el código de Apache) y apostar por más memoria RAM.</li>
<li>Obviamente la aplicación en el servidor con Prefork utiliza mucho más CPU, si modificáramos el servidor web para que use Worker, la misma aplicación tendría un menor rendimiento (no se puede usar un acelerador de php, recuerden).</li>
</ul>
<p>Si me preguntan, yo preferiría hacer la aplicación más compatible con Worker (agregar un sistema de caché) que usar el servidor con Prefork, un servidor sencillo puede escalar mucho mejor. Si el contenido es muy dinámico (invalidar el caché resulta muy costoso) enviaría todo el contenido estático a otro servidor (con worker) para que solo atienda el contenido dinámico. </p>
<h3>¿Por qué Prefork o Worker, y no FastCGI?</h3>
<p>Hablamos de Prefork y de Worker porque en todos los servidores (dedicados) que tengan instalado WHM/Cpanel se puede hacer el cambio entre estos siguiendo los pasos de <a href="http://www.cpanel.net/documentation/easyapache/">EasyApache</a>, aún sin CPanel instalado es bastante sencillo hacer el cambio ya que solo significaría modificar la configuración, si se usan módulos compartidos, o recompilar si se manejaron como módulos estáticos. Comodidad más que todo.</p>
<p>Una diferencia importante entre Prefork/Worker y CGI/FastCGI, es que en los primeros PHP corre como un módulo de Apache, mientras que en FastCGI corre como un proceso (o grupo de) separado de Apache. Hechar a andar esta configuración puede ser bastante retador (y que mi experiencia con FastCGI es menor).</p>
<p>Si quieren leer mucho más de como aplicar esto en sus servidores, les recomiendo repasar la documentación oficial <a href="http://httpd.apache.org/docs/2.2/mod/worker.html">de Worker</a> y <a href="http://httpd.apache.org/docs/2.2/mod/prefork.html">Prefork</a>, aprender como modificar la configuración de Apache (httpd.conf), saber como cambiar entre ambos modos (recompilar o editar la configuración), y claro experimentar <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/entendiendo-los-modos-multiproceso-de-apache/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/entendiendo-los-modos-multiproceso-de-apache/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/entendiendo-los-modos-multiproceso-de-apache/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/10/apache-logo.jpg" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/10/apache-logo.jpg" medium="image">
			<media:title type="html">apache-logo</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/10/apache-prefork.png" medium="image">
			<media:title type="html">apache prefork</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/10/apache-worker.png" medium="image">
			<media:title type="html">apache worker</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/10/apache-worker-150x150.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>La ICANN ya no estará bajo control del gobierno de Estados Unidos</title>
		<link>http://www.maestrosdelweb.com/editorial/icann-bajo-control-estados-unidos/</link>
		<comments>http://www.maestrosdelweb.com/editorial/icann-bajo-control-estados-unidos/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 01:25:32 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Dominios]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[estados unidos]]></category>
		<category><![CDATA[Icann]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6783</guid>
		<description><![CDATA[ La ICANN es una organización sin fines de lucro encargada de gestionar diversas tareas en la administración de Internet, y la principal encargada en decidir sobre el futuro de los nombres de dominio de primer nivel (TLD).
Desde su creación, hace 11 años, a un acuerdo con el Gobierno de Estados Unidos, concretamente con el [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/09/ICANN.png" alt="ICANN" title="ICANN" width="171" height="139" style="float:right;padding:5px" /> La <abbr title="Internet Corporation for Assigned Names and Numbers">ICANN</abbr> es una <a href="http://es.wikipedia.org/wiki/ICANN" rel="nofollow">organización sin fines de lucro</a> encargada de gestionar diversas tareas en la administración de Internet, y la principal encargada en decidir sobre el futuro de los nombres de dominio de primer nivel (TLD).</p>
<p>Desde su creación, hace 11 años, a un acuerdo con el Gobierno de Estados Unidos, concretamente con el Departamento de Comercio, con el cual podían ejercer cierto control sobre las decisiones de la ICANN. Dicho acuerdo <a href="http://news.zdnet.co.uk/communications/0,1000000085,39665754,00.htm">generó muchos años de críticas</a> sobre porque una organización como la ICANN (y a la larga, Internet) estaba ligada a un Gobierno en particular. </p>
<p>A partir del 1 de Octubre <a href="http://icann.org/en/announcements/announcement-30sep09-en.htm#announcement">dicho acuerdo deja de estar vigente</a>, y la ICANN pasa a ser una entidad global y privada sin fines de lucro. Esto tampoco significa que puedan hacer lo que quieran, pero sin duda quita un peso en las políticas internacionales del manejo y el futuro de Internet. </p>
<p>Para los que estamos en el «nivel más bajo de la cadena» esta noticia no debería representar cambios a corto plazo, si no más bien tener la esperanza que ahora la organización de Internet estará en «manos de todos». </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/icann-bajo-control-estados-unidos/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/icann-bajo-control-estados-unidos/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/icann-bajo-control-estados-unidos/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/09/ICANN.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/09/ICANN.png" medium="image">
			<media:title type="html">ICANN</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Degradados de colores usando CSS</title>
		<link>http://www.maestrosdelweb.com/editorial/degradados-colores-css/</link>
		<comments>http://www.maestrosdelweb.com/editorial/degradados-colores-css/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 22:15:35 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Maquetación]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[navegadores]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6567</guid>
		<description><![CDATA[Tradicionalmente cuando uno va a incluir un degradado (la transición de un color a otro) en un sitio, uno debe crear una imagen que represente dicha transición. Ahora esta es no es la única forma de lograrlo, también es posible obtener el mismo resultado usando solamente CSS. Claro, esto no funciona en todos los navegadores [...]]]></description>
			<content:encoded><![CDATA[<p>Tradicionalmente cuando uno va a incluir un degradado (la transición de un color a otro) en un sitio, uno debe crear una imagen que represente dicha transición. Ahora esta es no es la única forma de lograrlo, también es posible obtener el mismo resultado usando solamente CSS. Claro, esto no funciona en todos los navegadores por ahora.</p>
<p>Hace algunos meses <a href="http://webkit.org/blog/175/introducing-css-gradients/">el equipo de Webkit publicó su propuesta</a> para crear degradados CSS; semanas atrás <a href="https://developer.mozilla.org/en/CSS/Gradients">el equipo de Mozilla también publicó la suya</a> (que será incluida en la siguente versión de firefox). Ambas propuestas son muy similares como veremos en los siguientes ejemplos.</p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2009/08/linear-gradient.png" alt="degradado lineal" title="degradado lineal" width="155" height="155" class="alignnone size-full wp-image-6569" /></p>
<p>Si queremos representar esta imagen como degradados usando CSS, con Webkit (528) la definición sería:</p>
<div class="codigo">
<pre>background: -webkit-gradient(linear, left top, left bottom, from(#00abeb), to(#fff), color-stop(0.5, #fff), color-stop(0.5, #66cc00));
</pre>
</div>
<p>Donde los parámetros corresponden a: </p>
<p><code>-webkit-gradient(<em>tipo</em> , <em>punto inicio</em>, <em>punto final</em>, <em>color inicio</em>, <em>color final</em>, color-stop(<em>porcentaje</em>, <em>color</em>), color-stop(<em>porcentaje</em>, <em>color</em>) )</code>. </p>
<p>Con Firefox / Gecko (1.9.2) la definición solo varía al inicio, el resto de parámetros siguen en el mismo orden/significado:</p>
<div class="codigo">
<pre>background: -moz-linear-gradient(left top, left bottom, from(#00abeb), to(#fff), color-stop(0.5, #fff), color-stop(0.5, #66cc00));</pre>
</div>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2009/09/radial-gradient.png" alt="degrade radíal" title="degrade radíal" width="154" height="154" class="alignnone size-full wp-image-6572" /></p>
<p>Veamos un ejemplo más complicado, la imagen anterior se puede representar en Webkit de esta forma:</p>
<pre class="brush: css;">
background: -webkit-gradient(radial, 45 45, 10, 52 50, 30, from(#A7D30C), to(rgba(1,159,98,0)), color-stop(90%, #019F62)),
-webkit-gradient(radial, 105 105, 20, 112 120, 50, from(#ff5f98), to(rgba(255,1,136,0)), color-stop(75%, #ff0188)),
-webkit-gradient(radial, 95 15, 15, 102 20, 40, from(#00c9ff), to(rgba(0,201,255,0)), color-stop(80%, #00b5e2)),
-webkit-gradient(radial, 0 150, 50, 0 140, 90, from(#f4f201), to(rgba(228, 199,0,0)), color-stop(80%, #e4c700));
</pre>
<pre class="brush: css;">
background: -moz-radial-gradient(45px 45px, 10px, 52px 50px, 30px, from(#A7D30C), to(rgba(1,159,98,0)), color-stop(90%, #019F62)) no-repeat,
-moz-radial-gradient(105px 105px, 20px, 112px 120px, 50px, from(#ff5f98), to(rgba(255,1,136,0)), color-stop(75%, #ff0188)) no-repeat,
-moz-radial-gradient(95px 15px, 15px, 102px 20px, 40px, from(#00c9ff), to(rgba(0,201,255,0)), color-stop(80%, #00b5e2)) no-repeat,
-moz-radial-gradient(0 150px, 50px, 0px 140px, 90px, from(#f4f201), to(rgba(228, 199,0,0)), color-stop(80%, #e4c700)) no-repeat;
</pre>
<p>Pueden ver <a href="http://www.maestrosdelweb.com/util/degradados-css/ejemplo.html">el código <em>funcionando</em> de estos ejemplos acá</a>. A partir de estos podemos observar algunas diferencias:</p>
<ul>
<li>Para definir el tipo de degradado en Gecko se utiliza una propiedad diferente (<code>-moz-linear-gradient</code>) mientras que en Webkit se usa la misma propiedad (<code>-webkit-gradient</code>), pero se utiliza un parámetro adicional para indicar el tipo.</li>
<li>En Webkit se especifican las posiciones y radios sin unidad de medida, pero se interpretan como si fueran píxeles. En el caso de Gecko se necesita indicar la unidad de medida. Ambos interpretan también medidas en porcentajes o palabras claves.</li>
<li>En una misma definición de la propiedad <code>background</code> se pueden combinar tantos degradados como se necesite.</li>
<li>En el caso de Gecko para los degradados radiales debemos especificar el parámetro <code>no-repeat</code> después de la definición de cada degradado, en el caso de webkit no hace falta hacerlo. Si en Gecko no está presente el parámetro <code>no-repeat</code>, entonces el degradado se repetirá en forma radial respecto al centro de este.</li>
</ul>
<h3>Diferencias respecto al usar imágenes</h3>
<ul>
<li>Una de las primeras ventajas al definir degradados con CSS, es que eliminas las peticiones de las imágenes que hubiesen sido necesarias hacia el servidor web. Y de paso reduces el tiempo promedio para cargar del sitio</li>
<li>Cambiar el CSS de un sitio es mucho más sencillo que modificar las imágenes necesarias para el diseño. Incluso puedes definir el CSS dinámicamente si fuera necesario, usando imágenes esto sería más complicado.</li>
<li>Obviamente si lo incluyes en un sitio, muy poca gente será capaz de verlos. La versión actual de Firefox aún no los interpreta, tendrías que bajar la versión alpha para empezar a jugar con estos. En el caso de Webkit, las últimas versiones de Google Chrome y Safari ya interpretan los degradados CSS.</li>
<li>Aún así del lado de los móviles (iPhone, Android, Pre, etc), las ultimas versiones de estos ya incluyen una versión de Webkit que los interpreta. Acá es donde <strong>yo les veo</strong> mayor opción a usarlos.</li>
</ul>
<h3>Un ejemplo más real</h3>
<p>Imaginemos que tenemos un hipotético sencillo/ligero cliente para twitter que nos interesa que no desperdicie transferencia de datos en imágenes innecesarias (clave para usarlo sobre la red celular), pero a la vez queremos que no se vea tan feo como <a href="http://m.twitter.com/">la interfaz móvil de twitter</a>.</p>
<p>Nos interesa resaltar tweets de diferente color:</p>
<ul>
<li>Verde para los tweets propios</li>
<li>Naranja para las respuestas/menciones</li>
<li>Azul para los mensajes directos/privados</li>
<li>Blanco para todo lo demás</li>
</ul>
<p>Para ser compatibles con la mayor cantidad posible de navegadores, definiremos el color de fondo de cada tweet de esta forma:</p>
<pre class="brush: css;">
#t li{
background:#FAFAFA;
background:-webkit-gradient(linear,left top,left bottom,from(#FAFAFA),to(#eaeaea));
background:-moz-linear-gradient(left top,left bottom,from(#FAFAFA),to(#eaeaea));
}
</pre>
<p>Primero usamos la definición más general, para que los navegadores que no interpretan los degradados CSS la usen, luego especificamos las definiciones para los navegadores que si los interpretan. Pueden <a href="http://www.maestrosdelweb.com/util/degradados-css/">ver el ejemplo de degradados CSS</a>, si tienen la ultima versión de Google Chrome, Safari o la versión alpha de Firefox 3.6 deberían verlo así:</p>
<p style="text-align:center"><a href="http://www.maestrosdelweb.com/util/degradados-css/"><img src="http://www.maestrosdelweb.com/images/2009/09/degradados-css.png" alt="Degradados CSS" title="Degradados CSS" width="439" height="486" /></a><br />(clic en la imagen para ir al ejemplo)</p>
<p>Si este supuesto cliente lo usáramos en un iPhone, iPod Touch, Android, Palm Pre o cualquier otro que tenga un navegador con una versión reciente de Webkit, verían correctamente los degradados CSS. En la parte de Escritorio, la mayoría de gente aún usa Internet Explorer o Firefox, ninguno de estos interpreta los degradados CSS en sus versiones finales, no vale tanto la pena usarlos en algo general&#8230; por ahora.</p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/degradados-colores-css/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/degradados-colores-css/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/degradados-colores-css/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/08/linear-gradient-150x150.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/08/linear-gradient.png" medium="image">
			<media:title type="html">degradado lineal</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/08/linear-gradient-150x150.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/09/radial-gradient.png" medium="image">
			<media:title type="html">degrade radíal</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/09/radial-gradient-150x150.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/09/degradados-css.png" medium="image">
			<media:title type="html">Degradados CSS</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Readability: eliminando el ruido de los sitios web</title>
		<link>http://www.maestrosdelweb.com/editorial/readability-eliminar-ruido-sitios-web/</link>
		<comments>http://www.maestrosdelweb.com/editorial/readability-eliminar-ruido-sitios-web/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 23:09:53 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Navegando]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[herramientas]]></category>
		<category><![CDATA[sitios web]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6538</guid>
		<description><![CDATA[A diario consumo muchos contenidos en Internet, la mayoría de estos en ingles, ya sea desde el iPhone o desde la netbook. Me gusta sentirme cómodo mientras leo frente a la pantalla, razón por la cual me gusta eliminar los elementos innecesarios con Stylish, la extensión para Firefox, de los sitios que frecuento a diario. [...]]]></description>
			<content:encoded><![CDATA[<p>A diario consumo muchos contenidos en Internet, <a href="http://www.maestrosdelweb.com/editorial/¿por-que-un-sitio-en-espanol-utiliza-fuentes-en-ingles/">la mayoría de estos en ingles</a>, ya sea desde el iPhone o <a href="http://www.maestrosdelweb.com/editorial/netbook-suficiente-como-herramienta-de-trabajo/" title="¿Es una netbook suficiente como herramienta de trabajo?">desde la netbook</a>. Me gusta sentirme cómodo mientras leo frente a la pantalla, razón por la cual me gusta <a href="http://www.maestrosdelweb.com/editorial/stylish-extension-firefox-personalizar-internet-sitios/" title="Stylish, la extensión para firefox que personaliza Internet a tu gusto">eliminar los elementos innecesarios con Stylish</a>, la extensión para Firefox, de los sitios que frecuento a diario. Obviamente usar Stylish con cada sitio que visite en el día no es lógico, el esfuerzo no valdría la pena.</p>
<p>Es acá donde encuentro muy útil <a href="http://lab.arc90.com/experiments/readability/">Readabilty</a>, un <a href="http://lab.arc90.com/2009/03/readability.php">experimento de Arc90</a>, un bookmarklet (sí, no necesitas instalar nada en el navegador) con el cual se eliminará <em>el ruido</em> de los sitios: barras laterales, encabezados, pies de página, comentarios, y sí, también elimina la publicidad, dejando únicamente el contenido. </p>
<p>Para usarlo sólo hay que <a href="http://lab.arc90.com/experiments/readability/">eligir que configuración</a> nos agrade (estilo de letra/colores, tamaño y ancho) agregar el bookmarklet a nuestro navegador. Luego al visitar una página que creamos valga le pena, se usa el bookmarklet para limpiar la vista. Por ejemplo, un típico artículo de Forbes.com, está tan cargado de ruido:</p>
<p style="text-align:center"><a href="http://www.maestrosdelweb.com/images/2009/08/forbes-ugly.png"><img src="http://www.maestrosdelweb.com/images/2009/08/forbes-ugly-450x272.png" alt="forbes ugly" title="forbes ugly" width="450" height="272" class="alignnone size-medium wp-image-6540" /></a><br />(clic para agrandar)</p>
<p>Después de usar Readability se nota tanto la diferencia:</p>
<p style="text-align:center"><a href="http://www.maestrosdelweb.com/images/2009/08/forbes-clean.png"><img src="http://www.maestrosdelweb.com/images/2009/08/forbes-clean-450x273.png" alt="forbes clean" title="forbes clean" width="450" height="273" class="alignnone size-medium wp-image-6541" /></a><br />(clic para agrandar)</p>
<p>Incluso en la pantalla de mi netbook o y no digamos en el iPhone se aprecia tener los contenidos así de cómodos/limpios. Aún cuando <strong>no funciona</strong> con todos los sitios y hay <a href="http://code.google.com/p/arc90labs-readability/issues/list">bastantes errores reportados</a>, en la práctica funciona en los suficientes sitios como para volverse dependiente de este bookmarklet <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>¿Y mencioné que <a href="http://code.google.com/p/arc90labs-readability/">el código fuente de Readability está disponible</a> bajo <a href="http://www.maestrosdelweb.com/editorial/licencias-libres-de-software-ii/">licencia Apache 2.0</a>? Puedes descargar el código y ver como funciona, que por lo poco que revise si le dedicaron bastante tiempo. </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/readability-eliminar-ruido-sitios-web/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/readability-eliminar-ruido-sitios-web/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/readability-eliminar-ruido-sitios-web/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/08/forbes-ugly-150x150.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/08/forbes-ugly.png" medium="image">
			<media:title type="html">forbes ugly</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/08/forbes-ugly-150x150.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/08/forbes-clean.png" medium="image">
			<media:title type="html">forbes clean</media:title>
			<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/08/forbes-clean-150x150.png" />
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Acelerar el inicio de Firefox, sin reiniciar</title>
		<link>http://www.maestrosdelweb.com/editorial/software-libre/acelerar-inicio-firefox-sin-reiniciar/</link>
		<comments>http://www.maestrosdelweb.com/editorial/software-libre/acelerar-inicio-firefox-sin-reiniciar/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 00:30:08 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[navegadores]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6534</guid>
		<description><![CDATA[Hace algunas semanas escribí sobre el problema con el tiempo de inicio de Firefox 3.5, debido a la fragmentación de las bases de datos SQLite que este usa. Para solucionar este problema significaba instalar SQLite, cerrar Firefox y correr algunos comandos (Marcelo simplificó esto IniFox).
Jeremy Orem de Mozilla comparte una solución alternativa con la cual [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/07/minefield.png" alt="Boom" style="float:right;padding:5px" />Hace algunas semanas escribí sobre <a href="http://www.maestrosdelweb.com/editorial/tip-acelerar-inicio-firefox-35-beta/">el problema con el tiempo de inicio de Firefox 3.5</a>, debido a la fragmentación de las bases de datos SQLite que este usa. Para solucionar este problema significaba instalar SQLite, cerrar Firefox y correr algunos comandos (<a href="http://www.infospyware.com/herramientas/inifox/">Marcelo simplificó esto IniFox</a>).</p>
<p>Jeremy Orem de Mozilla <a href="http://blog.mozilla.com/oremj/2009/08/20/speedup-firefox-with-vacuum/">comparte una solución alternativa</a> con la cual no tengamos que instalar SQLite o siquiera cerrar Firefox. Todo es de ejecutar el siguiente comando desde la <em>Consola de Errores</em> (Menú Herramientas >> Consola de Errores):</p>
<div class="codigo">
<pre>
Components.classes["@mozilla.org/browser/nav-history-service;1"].getService(Components.interfaces.nsPIPlacesDatabase).DBConnection.executeSimpleSQL("VACUUM");</pre>
</div>
<p>Tan solo hay que copiar este comando y pegarlo en la ventana de la Consola de Errores y presionar el botón de <em>Evaluar</em> (no hay un aviso de cuando termina, pero se supone que Firefox quedará unos segundos <em>colgado</em> en lo que se ejecuta):</p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2009/08/screen.png" alt="Consola de Errores / Firefox" title="Consola de Errores / Firefox" width="466" height="91" /></p>
<p>Esto solo afectará a places.sqlite, no al resto de bases de datos, pero de todos modos solo places.sqlite es la que se fragmenta más. </p>
<p>Si no quieren estar recordando este comando, pueden instalar la extensión (experimental) <a href="https://addons.mozilla.org/en-US/firefox/addon/13878">Vacuum Places Improved</a>, que agregará un botón en la barra de estado después de X inicios, o procederá automáticamente a desfragmetar la base de datos después de otros tantos inicios de Firefox. </p>
<p>De parte de Mozilla aún <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=395020">siguen discutiendo sobre si deberían agregar esto</a> a Firefox y cada cuanto tiempo ejecutarlo automáticamente. </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/software-libre/acelerar-inicio-firefox-sin-reiniciar/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/software-libre/acelerar-inicio-firefox-sin-reiniciar/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/software-libre/acelerar-inicio-firefox-sin-reiniciar/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/07/minefield.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/07/minefield.png" medium="image">
			<media:title type="html">Boom</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/08/screen.png" medium="image">
			<media:title type="html">Consola de Errores / Firefox</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Wordpress 2.8.4, actualización de seguridad</title>
		<link>http://www.maestrosdelweb.com/editorial/wordpress-284-actualizacion-seguridad/</link>
		<comments>http://www.maestrosdelweb.com/editorial/wordpress-284-actualizacion-seguridad/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 06:00:02 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Gestores de Contenidos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[actualizacion]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6457</guid>
		<description><![CDATA[Hace unos días fue descubierta una «falla de seguridad» en Wordpress, que permitiría a cualquiera reiniciar la contraseña del administrador del blog (concretamente la primera cuenta del blog, que casi siempre es el usuario admin). No significa que van a obtener acceso al blog, pero con lo fácil que es realizar el «ataque» puede llegar [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/wordpress_ico.jpg" alt="Wordpress Logo" style="float:right;padding:5px"  />Hace unos días fue descubierta una «falla de seguridad» en Wordpress, que permitiría a cualquiera reiniciar la contraseña del administrador del blog (concretamente la primera cuenta del blog, que casi siempre es el usuario <code>admin</code>). <strong>No significa</strong> que van a obtener acceso al blog, pero con lo fácil que es realizar el «ataque» puede llegar a ser molesto si no se repara. </p>
<p>El equipo de Wordpress no se ha demorado y <a href="http://wordpress.org/development/2009/08/2-8-4-security-release/">liberaron la versión 2.8.4</a> corriguiendo este problema que afecta al a rama 2.8.x, y posiblemente a las anteriores también.</p>
<h3>El Ataque</h3>
<p>Usualmente el proceso de reiniciar la contraseña requiere que se haga una confirmación al visitar una URL especial, que solo llegará a la cuenta de coreo del usuario en cuestión. Pero esta restricción se puede obviar al visitar una URL como:</p>
<div class="codigo">
<pre>http://misuperblog.com/wp-login.php?action=rp&#038;key[]=</pre>
</div>
<p>Lo que parece ser una petición inocente, tiene el detalle que la variable <strong>key</strong> está definida como un array (<code>key[]=</code>). El código de Wordpress válida que dicha variable no esté vacía:</p>
<div class="codigo">
<pre>if ( empty( $key ) )</pre>
</div>
<p>Uno pensaría que esta comprobación debería ser suficiente, ¿no?</p>
<h3>Aprendiendo un poco del ataque</h3>
<p>Sabemos que la comprobación de Wordpress fallaba y según <a href="http://core.trac.wordpress.org/changeset/11798">el parche oficial, decidieron agregar</a> otra comprobación al if en cuestión:</p>
<div class="codigo">
<pre>if ( empty( $key ) || is_array( $key ) ) </pre>
</div>
<p>Entonces, ¿Cuál es el problema de usar solo <code>empty( $key )</code>? Resulta que en este caso $key no es un array vacío, sino que si contiene un elemento:</p>
<div class="codigo">
<pre>
// si ejecutamos:
var_dump($_GET['key']);

// obtendríamos:
array (
  0 => '',
)
</pre>
</div>
<p>Lo cual viene a ser una particularidad inesperada de PHP, una que el equipo de Wordpress no tuvo en cuenta, y que a <strong>cualquiera de nosotros</strong> también podría pasar por la misma situación. Nos queda de lección que hay que limitar lo más posible el rango de valores posibles en las variables que estamos recibiendo del usuario, por ejemplo a mí se me ocurren estas otras dos opciones para limitar <code>$key</code>:</p>
<ul>
<li>Haciendo un CAST del valor:</li>
</ul>
<div class="codigo">
<pre>
$key = (string) $_GET['key'];
var_dump($key);

// Obtenemos:
'Array'
</pre>
</div>
<ul>
<li>Usando preg_match():</li>
</ul>
<div class="codigo">
<pre>
$r = preg_match('/[a-z0-9]*/i', $_GET['key'], $matches);
</pre>
</div>
<p>Al pasar un array en preg_match, obtenemos: <code>Warning:  preg_match() expects parameter 2 to be string, array given in blablabla.php on line XX</code>. Pero de todos modos $r es <strong>false</strong> y $matches <strong>NULL</strong></p>
<p>¿Alguna otra forma que se les ocurra a ustedes? </p>
<p>Moralejas: Actualicen Wordpress o apliquen el parche, y si son programadores revisen los valores que pueden tomar sus <strong>variables de decisión</strong> <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/wordpress-284-actualizacion-seguridad/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/wordpress-284-actualizacion-seguridad/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/wordpress-284-actualizacion-seguridad/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/wordpress_ico.jpg" />
		<media:content url="http://www.maestrosdelweb.com/images/wordpress_ico.jpg" medium="image">
			<media:title type="html">Wordpress Logo</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>La versión móvil de Maestros del Web y cómo la implementamos (II)</title>
		<link>http://www.maestrosdelweb.com/editorial/la-version-movil-de-maestros-del-web-y-como-la-implementamos-ii/</link>
		<comments>http://www.maestrosdelweb.com/editorial/la-version-movil-de-maestros-del-web-y-como-la-implementamos-ii/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 09:00:41 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Tecnologías móviles]]></category>
		<category><![CDATA[desarrollo movil]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6391</guid>
		<description><![CDATA[Como ya mencionamos en una entrada anterior, nosotros estuvimos buscando una opción con la cual pudiéramos mostrar 3 plantillas (themes) diferentes en nuestra instalación de Wordpress, 2 versiones para móviles y la «normal» del sitio
Nosotros usamos de base el plugin WPtouch, que es el que provee la versión para el iPhone, y sobre este hicimos [...]]]></description>
			<content:encoded><![CDATA[<p>Como ya mencionamos <a href="http://www.maestrosdelweb.com/editorial/la-version-movil-de-maestros-del-web-y-como-la-implementamos-i/">en una entrada anterior</a>, nosotros estuvimos buscando una opción con la cual pudiéramos mostrar 3 plantillas (<em>themes</em>) diferentes en nuestra instalación de Wordpress, 2 versiones para móviles y la «normal» del sitio</p>
<p>Nosotros usamos de base el plugin <a href="http://www.bravenewcode.com/wptouch/">WPtouch</a>, que es el que provee la versión para el iPhone, y sobre este hicimos que tuviera una plantilla «adicional». En la función <code>detectAppleMobile</code> del archivo wptouch.php:</p>
<ul>
<li>Hay un primer <abbr title="loop">ciclo</abbr> encargado de detectar los «agentes móviles» que deseamos usen la versión para el iPhone.</li>
<li>Si no es uno de estos hay un segundo <abbr title="loop">ciclo</abbr> que intentará ver si es otro agente al cual hay que mostrar la versión más sencilla para móviles, como Opera Mini, IE Mobile y otros navegadores <del>raros</del> menos populares</li>
<li>Si ninguno de los <abbr title="loops">ciclo</abbr> encontró un «agente móvil», entonces se asume que es un cliente de escritorio al que hay que mostrar la plantilla «normal» del sitio, la plantilla que ustedes ya conocen desde el rediseño del sitio</li>
</ul>
<p>En código, dicha función quedará así:</p>
<pre class="brush: php;">
function detectAppleMobile($query = '') {
	$container = $_SERVER['HTTP_USER_AGENT'];
	$useragents = array(&quot;iphone&quot;, &quot;ipod&quot;, &quot;aspen&quot;, &quot;dream&quot;, 'android');
		$this-&gt;applemobile = false;
	foreach ($useragents as $useragent) {
			if (eregi($useragent, $container)) {
				$this-&gt;applemobile = true;
				$this-&gt;is_iphone = true;
		}
	}

	// if not iphone
	if ( !$this-&gt;applemobile ) {

	$browserAgents = &quot;Elaine/3.0, Palm, EudoraWeb, Blazer, AvantGo, Windows CE, Cellphone, Small, MMEF20, Danger, hiptop, Proxinet, ProxiNet, Newt, PalmOS, NetFront, SHARP-TQ-GX10, SonyEricsson, SymbianOS, UP.Browser, UP.Link, TS21i-10, MOT-V, portalmmm, DoCoMo, Opera Mini, Palm, Handspring, Nokia, Kyocera, Samsung, Motorola, Mot, Smartphone, Blackberry, WAP, SonyEricsson, PlayStation Portable, LG, MMP,OPWV, Symbian, EPOC&quot;;
	$browserAgents = explode(',',$browserAgents);
	if(!empty($browserAgents)){
		foreach ($browserAgents as $key =&gt; $value){
			$browserAgents[$key] = trim($value);
		}
	}

	foreach ( $browserAgents as $userAgent ) {
		if(eregi($userAgent,$container)){
			$this-&gt;applemobile = true;
			$this-&gt;is_iphone = false;
			//return;
		}
	}

	} //if ( !$this-&gt;applemobile )
	$this-&gt;bnc_filter_iphone();
}
</pre>
<p>Una vez ejecutado esto, ya solo tenemos que ver el valor de <code>$this->applemobile</code> para saber si es un «agente móvil» y 		<code>$this->is_iphone</code> para saber si le vamos a mostrar la versión para el iphone o no. </p>
<p>Luego de esto, tomamos nuestra plantilla basada sobre <a href="http://mobilepress.co.za/">MobilePress</a> y la llevamos hacia el directorio de plantillas del WPtouch (si el plugin ya tiene esto): <code>/wp-content/plugins/wptouch/themes/</code>. Hecho esto ya solo tenemos que especificarle a Wordpress el directorio de la plantilla que deseamos usar:</p>
<pre class="brush: php;">
function get_stylesheet($stylesheet) {
	if ($this-&gt;applemobile &amp;&amp; $this-&gt;desired_view == 'mobile') {
		if ( $this-&gt;is_iphone )
			return 'default'; // './wptouch/themes/default'
		else
			return 'pda'; // './wptouch/themes/pda'
	} else {
		return $stylesheet;
	}
}

function get_template($template) {
	$this-&gt;bnc_filter_iphone();
	if ($this-&gt;applemobile &amp;&amp; $this-&gt;desired_view === 'mobile') {
		if ( $this-&gt;is_iphone )
			return 'default'; // './wptouch/themes/default'
		else
			return 'pda'; // './wptouch/themes/pda'
	} else {
		return $template;
	}
}
</pre>
<p>El cambio de plantilla solo se hace si <code>$this->applemobile</code> tiene el valor <code>true</code>, de lo contrario se usará la que esté configurada desde Wordpress.</p>
<p>Con estas modificaciones a estas 3 funciones en wptouch.php ya deberíamos tener funcionando las diferentes plantillas según el agente desde el cual nos visitan.</p>
<h3>Compatibilidad con WP-Cache</h3>
<p>Para los que usamos WP-Cache nos encontramos con el problema de que usar diferentes plantillas dinámicamente no funciona correctamente con el caché activo, hará que la página se guarde de acuerdo al visitante con el cual se generado; los siguientes visitantes verán la misma versión que el primero. </p>
<p>A pesar de que el autor de WPtouch ofrece una versión modificada de WP-Cache que debería corregir esto, <strong>no funciona</strong>. Si una página ya está guardada en caché con la versión «normal», todos verán esta versión sin importar que agente usen.</p>
<p>Nosotros decidimos modificar WP-Cache para que detecte que agente se está usando y decida se mostrará o no la página en cache, una modificación a <code>wp-cache-phase1.php</code> resuelve esto:</p>
<pre class="brush: php;">
global $cache_rejected_user_agent;
if ( function_exists('apache_request_headers') ) {
	$headers = apache_request_headers();
	if ( isset($headers[&quot;User-Agent&quot;]) ) {
		foreach ($cache_rejected_user_agent as $expr) {
			if ( strlen($expr) &gt; 0 &amp;&amp; stristr($headers[&quot;User-Agent&quot;], $expr))
				return; // sale por completo de wp-cache
		}
	}
}
</pre>
<p><code>$cache_rejected_user_agent</code> (definido en <code>wp-cache-config.php</code>) es un array con los nombres de los agentes móviles que deseamos no vean ninguna página en caché, y pase el control hacia Wordpress. Como nuestro tráfico desde estos agentes es muy poco, no representa mayor esfuerzo para el servidor. El día que dicho trafico nos genere problemas, la mejor opción será especificar un directorio diferente para cada plantilla que usemos (controlado por <code>$cache_path</code>).</p>
<h3>Bonus: Usar un dominio diferente al principal</h3>
<p>Si han entrado a maestrosdelweb<strong>.com</strong> desde un móvil, verán que son redirigidos hacia maestrosdelweb<strong>.mobi</strong>, lo hicimos para darle algo de movimiento a dicho dominio <a href="http://es.wikipedia.org/wiki/.mobi" rel="nofollow">y cumplir el propósito del TLD</a>.</p>
<p>El primer paso es indicarle a Wordpress (en el <code>wp-config.php</code>) que use un dominio diferente al configurado en la base de datos, según la petición:</p>
<pre class="brush: php;">
if ( $_SERVER['HTTP_HOST'] == 'maestrosdelweb.mobi' || $_SERVER['HTTP_HOST'] == 'www.maestrosdelweb.mobi' ) {
	define('WP_HOME', 'http://maestrosdelweb.mobi');
	define('WP_SITEURL', 'http://maestrosdelweb.mobi');
}
</pre>
<p>(más detalles sobre <a href="http://codex.wordpress.org/Editing_wp-config.php#WordPress_address_.28URL.29">estas variables en el Codex de Wordpress</a>)</p>
<p>Hecho eso, agregamos a la función <code>detectAppleMobile()</code> de <code>wptouch.php</code> otra condición para redirigir los móviles hacia el dominio .mobi:</p>
<pre class="brush: php;">
if ( ($_SERVER['HTTP_HOST'] == 'maestrosdelweb.com' || $_SERVER['HTTP_HOST'] == 'www.maestrosdelweb.com') &amp;&amp; $this-&gt;applemobile) {
		header('Location: http://maestrosdelweb.mobi'.$_SERVER['REQUEST_URI'] );
		die;
	}
</pre>
<p>Obviamente ya debimos haber detectado si es un agente móvil o no, con los ciclos mencionados al inicio de este post. Por último necesitamos redirigir cualquiera que esté entrando al dominio .mobi y que <strong>no sea</strong> desde uno de los agentes móviles. Esto lo hacemos en <code>wp-cache-phase1.php</code> justo después del ciclo mencionando anteriormente para wp-cache:</p>
<pre class="brush: php;">
if ( ($_SERVER['HTTP_HOST'] == 'maestrosdelweb.mobi' || $_SERVER['HTTP_HOST'] == 'www.maestrosdelweb.mobi') ) {
		header('Location: http://www.maestrosdelweb.com'.$_SERVER['REQUEST_URI'],true,301);
		die;
}
</pre>
<p>Y con esto nuestro <em>hack</em> para el cambio de dominio estará listo.</p>
<p>Nos gustaría compartirles la versión final del plugin, ya combinada con MobilePress, pero dado que hicimos algunas personalizaciones a medida y es <strong>complicado</strong> mantener actualizaciones dependiendo de un tercero; preferimos contarles la historia completa de como reproducir ese cambio. A lo mejor alguien se anima a mantener dicha mezcla de plugins <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/la-version-movil-de-maestros-del-web-y-como-la-implementamos-ii/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/la-version-movil-de-maestros-del-web-y-como-la-implementamos-ii/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/la-version-movil-de-maestros-del-web-y-como-la-implementamos-ii/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/autores/312.png" />
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Si tu dominio te importa, deberías usar un servidor DNS externo</title>
		<link>http://www.maestrosdelweb.com/editorial/si-tu-dominio-importa-usar-servidor-dns-externo/</link>
		<comments>http://www.maestrosdelweb.com/editorial/si-tu-dominio-importa-usar-servidor-dns-externo/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 22:35:01 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Dominios]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6082</guid>
		<description><![CDATA[Hace algunas semanas el servicio donde tengo hospedado uno de mis sitios, tuvo un problema con uno de sus servidores DNS, sufrieron una contaminación (DNS poisoning) en los registros de algunos dominios; lo que provoco que estos redirigieran hacia otra IP fuera del proveedor. Por suerte el problema fue corregido al aplicar una actualización pendiente [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/07/servidor.png" alt="servidor" title="servidor" width="145" height="140" style="float:right;padding:5px"  />Hace algunas semanas el servicio donde tengo hospedado uno de mis sitios, tuvo un problema con uno de sus servidores DNS, sufrieron una <em>contaminación</em> (DNS poisoning) en los registros de algunos dominios; lo que provoco que estos redirigieran hacia otra IP fuera del proveedor. Por suerte el problema fue corregido al aplicar una actualización pendiente de seguridad en BIND (el <em>nameserver</em> de facto en *nix).</p>
<p>Me recuerda que ni hay proveedor infalible, y eventualmente todos tendrán que fallar, según la Ley de Murphy, así es como funcionan las maquinas, no son perfectas. Por experiencia propia con los proveedores de <abbr title="hospedaje de sitios">hosting</abbr>, se que los dominios pueden dejar de resolver correctamente</p>
<p>Algunas personas por razones de marca (<em>branding</em>) usan su nombre de dominio para sus direcciones de correo electrónico; ya sea que usen el servidor de correo incluido en el servicio, o uno externo como el de Google Apps. Dependiendo del negocio entorno al nombre dominio, tal vez no sea tan critico que el sitio web esté fuera por algunas horas, en comparación a perder la comunicación con el correo.</p>
<p>Si estas usando tu nombre de dominio para tus direcciones de correo, entonces <strong>deberías estar usando</strong> un servidor de DNS&#8217;s externo, o al menos contar con algún tipo de redundancia:</p>
<ul>
<li>Espera tener algún tipo de problema al usar los servidores DNS de tu <abbr title="shared hosting">hosting compartido</abbr> (principalmente si es un proveedor no tan grande).</li>
<li>No dependas de un solo nameserver en tu VPS o servidor dedicado (<a href="http://www.forosdelweb.com/f74/problema-ya-resuelto-con-servidor-dnss-677847/">ya cometimos ese error</a>), si tienes varios servidores agrega el mismo dominio a diferentes zonas de autoridad (aún cuando el sitio este hospedado solo en uno)</li>
<li>Si no tienes varios servidores, entonces mejor considera contratar un servicio de DNS&#8217;s</li>
</ul>
<p>He visto varios servicios de DNS como <a href="http://www.zoneedit.com/">Zone Edit</a>, <a href="http://www.dnsmadeeasy.com/">DnsMadeEasy</a> o <a href="http://www.easydns.com/">EasyDNS</a>, pero tan solo ver sus sitios no me dieron mucha confianza (lucen tan desactualizados). Yo llevo algunos meses usando <a href="http://dyndns.com">DynDNS</a> y su servicio de <a href="http://www.dyndns.com/services/dns/custom/">Custom DNS</a>, no he tenido ningún problema con ellos y se nota que se esmeran en estar al día.</p>
<p>Otra opción puede ser utilizar los servidores DNS del registrador de dominio donde tengamos el dominio, puede que sea gratuito o no, pero al menos será mejor que el de un shared hosting.</p>
<p>La ventaja de tener los DNS&#8217;s en un proveedor de hosting, es que puedes cambiar el sitio de proveedor más rápido, sin tener que esperar varios días a que la nueva «zona de autoridad» se propague; solo estarías modificando los registros <code>A</code> que por experiencia propia se reflejan más rápido que los cambios de zona.</p>
<p>Uno pensaría que se está agregando otra &#8220;capa&#8221; al sistema que podría fallar, pero justamente por eso se debe buscar un proveedor confiable (en mi caso DynDNS) que ofrezca una mejor redundancia que un proveedor de hosting. Una desventaja de usar un servidor DNS externo, es que si usas un hosting compartido, tienes que estar pendiente de los cambios de la IP del sitio, ya que no te ofrecen una ip estática para ti solo. </p>
<p>Obviamente no todos los dominios que mantengamos valen la pena pagar y tomarse la molestia de contratar/mantener un servidor DNS adicional, y ese es el punto: si un dominio nos genera ingresos, o el solo hecho de que esté fuera de linea nos causa perdidas, <strong>justifica</strong> el que invirtamos un poco más de dinero para prever/minimizar problemas que puedan surgir con este; esto es algo que seguro a muchos nos ha pasado.</p>
<p>Imagen: <a href="http://tango.freedesktop.org/Tango_Desktop_Project">Tango Desktop Project</a>.</p>
<h3>Otros recursos que pueden ser útiles</h3>
<ul>
<li><a href="http://www.maestrosdelweb.com/editorial/haz-que-tu-servidor-se-defienda-por-si-mismo-contra-ataques-ddos/">Haz que tu servidor se defienda por si mismo contra ataques (D)DoS</a></li>
<li><a href="http://www.maestrosdelweb.com/editorial/guia-para-trasladar-tu-sitio-de-hosting-sin-dejarlo-abajo-ni-un-minuto/">Guía para trasladar tu sitio de hosting sin dejarlo abajo ni un minuto</a></li>
<li><a href="http://www.maestrosdelweb.com/editorial/problemas-con-los-dns-de-tu-isp-usa-opendns/">¿Problemas con los DNS’s de tu ISP? Usa OpenDNS</a></li>
<li><a href="http://www.maestrosdelweb.com/editorial/herramientas-para-revisar-la-configuracion-de-nuestros-servidores-dns/">Herramientas para revisar la configuración de nuestros servidores DNS</a></li>
</ul>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/si-tu-dominio-importa-usar-servidor-dns-externo/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/si-tu-dominio-importa-usar-servidor-dns-externo/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/si-tu-dominio-importa-usar-servidor-dns-externo/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/07/servidor.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/07/servidor.png" medium="image">
			<media:title type="html">servidor</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Evitando el largo inicio de Firefox 3.5 en Windows</title>
		<link>http://www.maestrosdelweb.com/actualidad/evitando-largo-inicio-firefox-35-windows/</link>
		<comments>http://www.maestrosdelweb.com/actualidad/evitando-largo-inicio-firefox-35-windows/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 16:00:01 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Actualidad]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Firefox3.5]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[navegadores]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6322</guid>
		<description><![CDATA[ Oh si, acá vamos con otra entrada hablando de lo lento que inicia Firefox 3.5 (final), solo que en este caso es solo para los usuarios de Windows. Resulta que la última versión de Firefox con tal de mejorar algunos aspectos de seguridad, específicamente la generación de números aleatorios, hace un escaneo de los [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/07/minefield.png" alt="minefield" title="minefield" width="128" height="128" style="float:right;padding:5px"  /> Oh si, acá vamos con otra entrada hablando de <strong>lo lento que inicia</strong> Firefox 3.5 (final), solo que en este caso es solo para los usuarios de Windows. Resulta que la última versión de Firefox con tal de mejorar algunos aspectos de seguridad, específicamente la generación de números aleatorios, hace un <em>escaneo</em> de los archivos temporales con el fin de tomar bytes <em>al zar</em> de algunos de esos archivos.</p>
<p>En un mundo perfecto eso no sería nada de que preocuparse; pero en el mundo real la gente con grandes cantidades de archivos temporales, antivirus instalados y discos con límites en la velocidad lectura, está viendo como Firefox 3.5 tarda hasta varios minutos en cargar, <a href="http://weblogs.asp.net/fbouma/archive/2009/07/09/the-firefox-3-5-fiasco.aspx">calificando esto como un fiasco para Mozilla</a>.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=501605">Ya se ha identificado el bug</a> y se espera que en la versión 3.5.1 se resuelva esto, <a href="http://mozillalinks.org/wp/2009/07/workaround-for-firefox-3-5-slow-startups-on-windows/">mientras tanto la solución es eliminar todos esos archivos temporales</a> con tal de mejorar el inicio de firefox. Específicamente, 3.5 leerá estos directorios:</p>
<div class="codigo">
<pre>
C:\Documents and Settings\*usuario*\Local Settings\History
C:\Documents and Settings\*usuario*\Local Settings\Temporary Internet Files
C:\Documents and Settings\*usuario*\My Recent Documents
C:\Documents and Settings\*usuario*\Temp\</pre>
</div>
<p>(Usuarios de windows 7 o vista, ya saben que es <code>C:\Users</code> en lugar de <code>C:\Documents and Settings</code>)</p>
<p>Ya sea que eliminen estos archivos a mano o desde las opciones de Internet Explorer, definitivamente mejora el inicio. En mi uso diario como casi siempre dejo la PC en hibernación,  el proceso de Firefox pasa <em>días</em> corriendo, pero si hay una mejora notable del antes y después de eliminar esos archivos. </p>
<p>Ahora, Firefox no solo va a necesitar <a href="http://www.maestrosdelweb.com/editorial/tip-acelerar-inicio-firefox-35-beta/">que defragmenten sus bases de datos sqlite</a>, sino que ahora debes borrar los archivos temporales de tu sistema y de <strong>Internet Explorer</strong>&#8230; genios! </p>
<p>PD: Espero que en los comentarios no me digan que no es un problema de Firefox, sino de Windows en sí&#8230;. o que debería usar un navegador de esos que salen de premio en las cajas de cereal :rolleyes: </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/actualidad/evitando-largo-inicio-firefox-35-windows/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/actualidad/evitando-largo-inicio-firefox-35-windows/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/actualidad/evitando-largo-inicio-firefox-35-windows/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/07/minefield.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/07/minefield.png" medium="image">
			<media:title type="html">minefield</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Guatemala: Problemas de acceso hacia Wordpress.com</title>
		<link>http://www.maestrosdelweb.com/actualidad/guatemala-problema-acceso-wordpresscom/</link>
		<comments>http://www.maestrosdelweb.com/actualidad/guatemala-problema-acceso-wordpresscom/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 02:00:16 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Actualidad]]></category>
		<category><![CDATA[censura]]></category>
		<category><![CDATA[guatemala]]></category>
		<category><![CDATA[wordpress.com]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6278</guid>
		<description><![CDATA[Todo parece indicar que desde Guatemala existe algún tipo de problema en el acceso hacia los blogs hospedados en Wordpress.com; varios de los más  proveedores de internet en el país tienen problemas de conectividad hacia el datacenter de Wordpress.com, según lo han reportado varios usuarios en twitter y en su blogs. 
Desde el día [...]]]></description>
			<content:encoded><![CDATA[<p>Todo parece indicar que desde Guatemala existe algún tipo de problema en el acceso hacia los blogs hospedados en Wordpress.com; varios de los más  proveedores de internet en el país tienen problemas de conectividad hacia el datacenter de Wordpress.com, según lo han reportado varios usuarios en twitter y en su blogs. </p>
<p>Desde el día jueves por la noche <a href="http://twitter.com/j_aroche/status/2340114001">he tenido problemas para acceder</a> (con Turbonett) a cualquier blog hospedado en los servidores de Wordpress.com (incluido el mío), la única forma por la cual se puede lograr acceder a estos es usando una ruta alterna por medio de algún tunel o proxy, con lo que pude confirmar que era un problema con la ruta por la cual pasa mi enlace. </p>
<p>No es un problema en los DNS, ya que <a href="http://www.maestrosdelweb.com/editorial/problemas-con-los-dns-de-tu-isp-usa-opendns/">usando OpenDNS puedo resolver correctamente</a> la IP de todos los sitios en Wordpress.com:</p>
<div class="codigo">
<pre>C:\&gt;nslookup wordpress.com
Server:  resolver1.opendns.com
Address:  208.67.222.222

Non-authoritative answer:
Name:    wordpress.com
Addresses:  72.233.2.57
          74.200.243.254
          76.74.254.126</pre>
</div>
<p>Pero luego aún con un simple ping no hay respuesta:</p>
<div class="codigo">
<pre>C:\&gt;ping wordpress.com

Pinging wordpress.com [74.200.243.254] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 74.200.243.254:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),</pre>
</div>
<h3>¿Por qué no habría acceso a Wordpress.com desde Guatemala?</h3>
<p>Sabemos que no es un problema de todos los proveedores locales, sino solo algunos de estos, y el soporte técnico de estos solo dice que está investigando el problema. Podría existir la mala fortuna que estos proveedores compartan la misma salida de Internet y el problema esté en esta. Además sabiendo que el problema inició cerca del fin de semana podría pensarse que estaban haciendo algunos cambios en sus infraestructuras. </p>
<p><strong>Que quede claro:</strong> Aún no hay ninguna confirmación &#8220;oficial&#8221; sobre si en verdad existe un bloqueo intencional, o solo un error en el ruteo de la salida de Internet en Guatemala; Esperamos que solo sea un <em>misterioso</em> problema técnico.</p>
<p>Hasta ahora he podido confirmar (con turbonett) que todos los blogs y dominios en los DNS&#8217;s de Wordpress.com, Automattic.com, Buddypress.org, bbpress.org y Wordpress.org no hay acceso hacia estos. Otros proyectos de Automattic, como Akismet, Gravatar o IntenseDebate aún se pueden acceder sin problemas.</p>
<p>Para los usuarios en Guatemala, <a href="http://www.herdict.org/web/explore/detail/id/GT/2946">pueden confirmar si tienen o no acceso hacia Wordpress.com</a> y sitios relacionados en HerdictWeb.</p>
<h3>Alternativas para acceder a Wordpress.com</h3>
<p>En lo que se aclara este asunto, a los usuarios en Guatemala que necesitemos acceder a Wordpress.com, nos tocará:</p>
<ul>
<li>Usar Proxys internacionales</li>
<li><a href="http://tuxtor.shekalug.org/?p=486">Instalar TOR</a></li>
<li>O usar una VPN, que es la solución más &#8220;Pro&#8221;</li>
</ul>
<p>Y claro, tal como recomienda @romerogt, los usuarios de estos provedores <a href="http://romerogt.delaermita.com/blog/2009/06/27/turbonett-y-tigo-no-dejan-llegar-a-wordpress-en-guate/">deberían reportar el problema</a> para que sea resuelto lo antes posible. En twitter estaremos siguiendo el tema usando <a href="http://search.twitter.com/search?q=%23wordpressgt">el hashtag #wordpressgt</a> </p>
<h3>Otros usuarios que han compartido sus opiniones al respecto</h3>
<ul>
<li>El Profe:<a href="http://www.blogdelprofe.com/2009/06/28/wordpress-bloqueado-en-guatemala/">Wordpress bloqueado en Guatemala</a></li>
<li>El Blog del Baterista: <a href="http://guatemaladrummer.blogspot.com/2009/06/acceso-desde-isp-de-telgua-wordpresscom.html">Acceso desde ISP de Telgua a wordpress.com restringido</a></li>
<li>Micha Micha: <a href="http://michamicha.wordpress.com/2009/06/27/bloqueo-de-wordpress-en-guatemala/">Bloquedo de Wordpress en Guatemala</a></li>
<li>Bitacora de RomeroGT: <a href="http://romerogt.delaermita.com/blog/2009/06/27/turbonett-y-tigo-no-dejan-llegar-a-wordpress-en-guate/">Turbonett y Tigo no dejan llegar a Wordpress en Guate</a></li>
<li>El abismo de Tux: <a href="http://tuxtor.shekalug.org/?p=492">¿Como me respondieron en tigo acerca del bloqueo de wordpress.com?</a></li>
</ul>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/actualidad/guatemala-problema-acceso-wordpresscom/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/actualidad/guatemala-problema-acceso-wordpresscom/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/actualidad/guatemala-problema-acceso-wordpresscom/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/autores/312.png" />
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>«Twitpocalypse» : Más allá del límite de los enteros de 32bits</title>
		<link>http://www.maestrosdelweb.com/actualidad/twitpocalypse-limite-enteros-32bits-twitter-fai/</link>
		<comments>http://www.maestrosdelweb.com/actualidad/twitpocalypse-limite-enteros-32bits-twitter-fai/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 09:17:59 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Actualidad]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6195</guid>
		<description><![CDATA[Cualquiera que haya estudiado algo de la Teoría de la Computación, sabrá que las máquinas apestan en las matemáticas o dicho de otra forma, no contamos con una buena representación de los números dentro de estas.  
¿A qué viene todo esto? Resulta que hace unas pocas horas el identificador de cada estado en Twitter, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/06/twitpocalypse.png" alt="Twitpocalypse" style="float:right;padding:5px" />Cualquiera que haya estudiado algo de la Teoría de la Computación, sabrá que <a href="http://www.codinghorror.com/blog/archives/001266.html">las máquinas apestan en las matemáticas</a> o dicho de otra forma, no contamos con una buena representación de los números dentro de estas.  </p>
<p>¿A qué viene todo esto? Resulta que hace unas pocas horas el identificador de cada estado en Twitter, pasó el límite de los enteros de 32bis (con signo) o sea, <code>2,147,483,647</code>; a lo que <a href="http://www.twitpocalypse.com/">le han denominado el Twitpocalypse</a>, el problema no es con Twitter, sino con las aplicaciones que no están preparadas para enteros más grandes que dicho límite.</p>
<p style="text-align:center"><a href="http://www.flickr.com/photos/j_aroche/3621761108/" title="Twitterrific FAIL by Javier Aroche, on Flickr"><img src="http://www.maestrosdelweb.com/images/2009/06/twitterrific.jpg" alt="Twitterrific FAIL" /></a></p>
<p>Las «víctimas» más notables del Twitpocalypse, han <a href="http://mashable.com/2009/06/12/twitterrific-twitpocalypse/">sido Twitterrific para el iPhone, TwitterDeck y Destroy Twitter</a>, estos dos últimos ya liberaron nuevas versiones corrigiendo el error y <a href="http://iconfactory.com/home/permalink/2129">Twitterrific debe esperar</a> el lento/ineficiente proceso de la App Store para que vemos una nueva versión.</p>
<p>Pero esto no se limita solo a clientes de escritorio, seguro también afectará a servicios en linea que dependan de Twitter en alguna forma. Por ejemplo en un script PHP en el que estoy trabajando, por limitar el tipo de datos que inserto a la base de datos estoy haciendo una conversión lo que obtengo de la API de Twitter:</p>
<div class="codigo">
<pre>$updateid = (int) $status->id;</pre>
</div>
<p>El detalle está en que si PHP corre sobre una plataforma de 32bits, el máximo entero es:</p>
<div class="codigo">
<pre>$ php -r 'echo PHP_INT_MAX;'
2147483647
</pre>
</div>
<p>Mientras que en una plataforma de 64bits, será:</p>
<div class="codigo">
<pre>$ php -r 'echo PHP_INT_MAX;'
9223372036854775807
</pre>
</div>
<p>Al no a ver tenido en cuenta esta <strong>sutil diferencia</strong>, mi script se ha perdido de algunos tweets en lo que me percaté del problema, en fin gajes del oficio. Al final, lo solucioné de esta forma:</p>
<div class="codigo">
<pre>
$updateid = (float)$status->id;

// o incluso podría ser:
$updateid = abs( (float)$status->id ); // solo por limitarlo más <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </pre>
</div>
<p>Y claro si están guardando los tweets en alguna base de datos, hay que revisar el tipo de datos para el identificador&#8230; de preferencia que sea BIGINT si usan MySQL. </p>
<p>Si notan que alguna aplicación o servicio ha dejado de funcionar recientemente y sin razón alguna&#8230; ya saben que es lo que pudo haber pasado. Seguro que dentro de las próximas horas saldrán nuevas versiones&#8230; y sino, será mejor buscar alguna alternativa a la cual si le presten <strong>más atención</strong>. </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/actualidad/twitpocalypse-limite-enteros-32bits-twitter-fai/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/actualidad/twitpocalypse-limite-enteros-32bits-twitter-fai/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/actualidad/twitpocalypse-limite-enteros-32bits-twitter-fai/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/06/twitpocalypse.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/06/twitpocalypse.png" medium="image">
			<media:title type="html">Twitpocalypse</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/06/twitterrific.jpg" medium="image">
			<media:title type="html">Twitterrific FAIL</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Tip: Acelerar el inicio de Firefox 3.5 Beta</title>
		<link>http://www.maestrosdelweb.com/editorial/tip-acelerar-inicio-firefox-35-beta/</link>
		<comments>http://www.maestrosdelweb.com/editorial/tip-acelerar-inicio-firefox-35-beta/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 21:50:34 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[navegadores]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6187</guid>
		<description><![CDATA[ Como buen usuario masoquista de Firefox, desde hace algunos meses vengo usando las versiones Beta de Shiretoko (3.5), así como lo hice con Gran Paradiso (3.0). Al usar una versión beta hay mucha más diversión, como que muchas extensiones ya no son compatibles o tienes problemas con javascript. 
Uno de los últimos problemas que [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2009/06/firefox-3beta-poster.jpg" alt="firefox-3beta-poster" title="Firefox Poster" width="180" height="240" style="float:right;padding:5px" /> Como buen usuario masoquista de Firefox, desde hace algunos meses vengo usando las versiones Beta de <a href="https://wiki.mozilla.org/Firefox3.5">Shiretoko (3.5)</a>, así como lo hice con Gran Paradiso (3.0). Al usar una versión beta hay mucha más <em>diversión</em>, como que muchas extensiones ya no son compatibles o tienes problemas con javascript. </p>
<p>Uno de los últimos problemas que estuve sufriendo fue el increíble tiempo para que Firefox 3.5b4 iniciara, tomando más de un minuto y muchísimos accesos al disco duro; cosa que no pasaba con mi Firefox 3.0.10. </p>
<p>El problema viene que Firefox usa bases de datos en SQLite (desde 3.0) para guardar el historial, marcadores, cookies, datos en formularios, etc; y luego de muchos meses de uso bases de datos se fragmentan lo cual afecta el rendimiento al inicio de Firefox (en mi caso tengo 28MB en archivos *.sqlite) y este nunca <em>compacta</em> dichas bases de datos. </p>
<p>Para solucionar le problema hay que correr <a href="http://www.sqlite.org/lang_vacuum.html">el comando VACUUM de SQLite</a>, que sería un equivalente del <code>OPTIMIZE TABLE</code> en MySQL, esto eliminará todos los <em>espacios</em> del archivo de la base de datos eliminando los fragmentos en este.</p>
<p>Para hacerlo necesitas SQLite, <a href="http://sqlite.org/download.html">tendrás que descargarlo</a> o instalarlo con algún administrador de paquetes como el de Debian/Ubuntu:</p>
<div class="codigo">
<pre>sudo apt-get install sqlite3</pre>
</div>
<p>Una vez instalado SQLite y accesible desde el PATH, cierren Firefox para que las bases de datos no estén bloqueadas, busquen en que directorio está su perfil de Firefox:</p>
<p>En Debian/Ubuntu sería en:</p>
<div class="codigo">
<pre>/home/[username]/.mozilla/firefox/[profile-id]</pre>
</div>
<p>Para Windows:</p>
<div class="codigo">
<pre>C:\Documents and Settings\[username]\Application Data\Mozilla\Firefox\Profiles\[profile-id]</pre>
</div>
<p>En dichas carpetas deberían estar varios archivos *.sqllite. Una vez sepan la ruta, hay que correr el comando:</p>
<div class="codigo">
<pre>sqlite3 places.sqlite "VACUUM"</pre>
</div>
<p><code>places.sqlite</code> es el archivo más grande en mi caso, donde firefox guarda el historial de navegación, pero también pueden correrlo sobre el resto de archivos *.sqlite</p>
<p>Completados estos pasos, al iniciar nuevamente Firefox, deberían notar que se tarda menos tiempo en iniciar, dependerá de cada instalación en cuanto tiempo y espacio puedan ganar. </p>
<p>Actualización: <a href="http://www.infospyware.com/blog/acelera-el-inicio-de-firefox-con-inifox.htm">Marcelo ha creado un archivo .bat y un .zip que incluye lo necesario</a> para hacer esta optimización a firefox mucho más sencilla a los usuarios de Windows.</p>
<p>Imagen: <a href="http://www.intothefuzz.com/2008/06/11/victory/">intothefuzz.com</a>.</p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/tip-acelerar-inicio-firefox-35-beta/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/tip-acelerar-inicio-firefox-35-beta/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/tip-acelerar-inicio-firefox-35-beta/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2009/06/firefox-3beta-poster.jpg" />
		<media:content url="http://www.maestrosdelweb.com/images/2009/06/firefox-3beta-poster.jpg" medium="image">
			<media:title type="html">Firefox Poster</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
		<item>
		<title>Haciendo que OpenDNS sea menos &#8220;molesto&#8221;</title>
		<link>http://www.maestrosdelweb.com/editorial/haciendo-opendns-menos-molesto-privacidad/</link>
		<comments>http://www.maestrosdelweb.com/editorial/haciendo-opendns-menos-molesto-privacidad/#comments</comments>
		<pubDate>Thu, 28 May 2009 18:00:09 +0000</pubDate>
		<dc:creator>Javier Aroche</dc:creator>
				<category><![CDATA[Aspectos técnicos]]></category>
		<category><![CDATA[Dominios]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[Servicios Web]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[opendns]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://www.maestrosdelweb.com/?p=6140</guid>
		<description><![CDATA[ Últimamente he estado recomendando mucho el uso de OpenDNS en vez de usar los DNS de los proveedores de Internet, básicamente para reducir el tiempo de la propagación de los DNS y porque el rendimiento es mucho mejor. 
Pero hay que aceptar que a pesar de todo, OpenDNS tiene dos inconvenientes que hay que [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.maestrosdelweb.com/images/2008/11/open-dns.png" alt="OpenDNS" style="float:right;padding:5px" /> Últimamente he estado recomendando mucho <a href="http://www.maestrosdelweb.com/editorial/problemas-con-los-dns-de-tu-isp-usa-opendns/">el uso de OpenDNS en vez de usar los DNS de los proveedores de Internet</a>, básicamente para reducir el tiempo de la propagación de los DNS y porque el rendimiento es mucho mejor. </p>
<p>Pero hay que aceptar que a pesar de todo, OpenDNS tiene dos inconvenientes que hay que resaltar:</p>
<h3>Privacidad</h3>
<p>Creo que este es el punto que más les ha preocupado a muchos: por defecto OpenDNS utiliza un Proxy para que algunas características del servicio funcionen pero lo curioso es que <a href="http://www.kriptopolis.org/adios-opendns">hacen que todas las peticiones a Google pasen por su proxy</a>:</p>
<div class="codigo">
<pre>C:\>nslookup www.google.com
Server:  resolver1.opendns.com
Address:  208.67.222.222

Non-authoritative answer:
Name:    <strong>google.navigation.opendns.com</strong>
Addresses:  208.69.32.231, 208.69.32.230
Aliases:  www.google.com</pre>
</div>
<p>OpenDNS <a href="http://www.opendns.com/support/article/244">aclara al respecto de porque esto es así</a>:</p>
<blockquote><p>When enabled, we route certain requests to a simple proxy which checks for the origin of the request.  Shortcut-related traffic gets handled (and redirected) while all other traffic goes to the intended destination untouched.  We are not storing or mining any of the data that passes through the proxy.  The proxy does nothing malicious &#8211; it&#8217;s designed to make your shortcuts work seamlessly with the Google Toolbar and similar services, giving you the best of both worlds.</p></blockquote>
<p>También declaran que se usaran los datos solamente para motivos operacionales y prometen cumplir con <a href="http://www.opendns.com/privacy/">su política de privacidad</a>. De todas formas esta característica se puede desactivar (a costa de que dejen de funcionar los &#8220;network shorcuts&#8221;), todo lo que necesitas es:</p>
<ul>
<li>Crear una cuenta de usuario en OpenDNS</li>
<li>Garantizar que tu cuenta esté ligada a tu última dirección IP &#8220;pública&#8221;. Si tienes una IP estática, basta con registrar tu red una vez en OpenDNS; si se te asigna una IP dinámica, podrías usar <a href="http://www.opendns.com/support/article/90">uno de estos programas para mantener actualizada tu IP</a> con tu cuenta (Windows y Mac OSX).</li>
</ul>
<p>Una vez resuelto esto, solo tienes cambiar la configuración de tu red en OpenDNS (Advanced Settings) para que no esté activo su proxy:</p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2009/05/opendns-proxy.png" alt="opendns-proxy" title="opendns-proxy" width="475" height="149"  /></p>
<p>Minutos después, ya deberías conectarte directamente a los servidores de Google, como si no existiera el proxy de OpenDNS:</p>
<div class="codigo">
<pre>C:\>nslookup www.google.com
Server:  resolver1.opendns.com
Address:  208.67.222.222

Non-authoritative answer:
Name:    www.l.google.com
Addresses:  64.233.161.147, 64.233.161.104, 64.233.161.99
Aliases:  www.google.com</pre>
</div>
<h3>OpenDNS Guide</h3>
<p>Cuando uno escribe mal un nombre de dominio, espera recibir un aviso de que no es posible conectarse al dominio, o simplemente no funciona en ese instante; pero cuando uno está detrás de los servidores de OpenDNS, uno termina siendo redirigido hacia el OpenDNS Guide:</p>
<p style="text-align:center"><a href="http://guide.opendns.com/?url=sdfsdfsdfsdfsd.com"><img src="http://www.maestrosdelweb.com/images/2009/05/opendns-guide.png" alt="opendns-guide" title="opendns-guide" width="475" height="241"  /></a><br /> (clic para visitar)</p>
<p>Incluso si uno hace una consulta a los DNS&#8217;s por un dominio inexistente, recibirás una respuesta de como que si existiera y resolviera hacia una IP (de OpenDNS obviamente):</p>
<div class="codigo">
<pre>
C:\>nslookup sdfsdfsdfsdfsd.com
Server: resolver2.opendns.com
Address: 208.67.220.220

Non-authoritative answer:
Name: sdfsdfsdfsdfsd.com
Address: 208.69.34.132</pre>
</div>
<p>Esa es una de las características que más detesto de OpenDNS, lo bueno es que de todos modos también se puede desactivar: de nuevo se necesita una cuenta, y mantener la IP &#8220;pública&#8221; ligada a esta. Solo tenemos que desactivar las correcciones de nombres de dominios (domain typos) en la configuración de nuestra red: </p>
<p style="text-align:center"><img src="http://www.maestrosdelweb.com/images/2009/05/opendns-domain-typo.png" alt="opendns-domain-typo" title="opendns-domain-typo" width="475" height="175" /></p>
<p>Minutos después de guardar esto, ya no tendrías que seguir viendo el OpenDNS Guide en cada error o búsqueda que hagas desde la barra de direcciones del navegador. </p>
<p>La parte más complicada de esto es estar actualizando la IP desde la que OpenDNS te reconoce, sobre la privacidad honestamente <strong>me preocupa</strong> mucho más <a href="http://www.maestrosdelweb.com/editorial/cuando-tu-identidad-en-linea-pone-en-riesgo-tu-identidad-real/">lo que hacen los Gobiernos y Proveedores locales</a> que lo que haría OpenDNS. </p>
<hr /><p style="height: 64px;"><img src="http://www.maestrosdelweb.com/images/autores/312.png" alt="Javier Aroche" class="avatar" style="float:left;padding:0 5px" /> <strong>Javier Aroche</strong> para <a href="http://www.maestrosdelweb.com">Maestros del Web</a>.<br /><a href="http://www.maestrosdelweb.com/editorial/haciendo-opendns-menos-molesto-privacidad/#respond">Agrega tu comentario</a> | <a href="http://www.maestrosdelweb.com/editorial/haciendo-opendns-menos-molesto-privacidad/">Enlace permanente</a> al artículo</p><hr style="clear: both;"/>
		<p><strong>Síguenos en:</strong> <img src="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" style="vertical-align:middle;"> <a href="http://twitter.com/maestros">@maestros</a> | <img style="vertical-align:middle;" src="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png"> <a href="http://www.facebook.com/pages/Maestros-del-Web/5833493986">Fan page</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/haciendo-opendns-menos-molesto-privacidad/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:thumbnail url="http://www.maestrosdelweb.com/images/2008/11/open-dns.png" />
		<media:content url="http://www.maestrosdelweb.com/images/2008/11/open-dns.png" medium="image">
			<media:title type="html">OpenDNS</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/05/opendns-proxy.png" medium="image">
			<media:title type="html">opendns-proxy</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/05/opendns-guide.png" medium="image">
			<media:title type="html">opendns-guide</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/2009/05/opendns-domain-typo.png" medium="image">
			<media:title type="html">opendns-domain-typo</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/images/autores/312.png" medium="image">
			<media:title type="html">Javier Aroche</media:title>
		</media:content>
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/twitter.png" medium="image" />
		<media:content url="http://www.maestrosdelweb.com/diseno/imagenes/facebook.png" medium="image" />
	</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1269178346.272 seconds -->
