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

<channel>
	<title>www.patolin.com</title>
	<atom:link href="http://patolin.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://patolin.com</link>
	<description>la página web de patolin</description>
	<lastBuildDate>Thu, 02 Feb 2012 20:50:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Facebook tiene 100 Peta Bytes de informacion almacenada!</title>
		<link>http://patolin.com/blog/2012/02/02/facebook-tiene-100-peta-bytes-de-informacion-almacenada/</link>
		<comments>http://patolin.com/blog/2012/02/02/facebook-tiene-100-peta-bytes-de-informacion-almacenada/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 20:49:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[almacenamiento]]></category>
		<category><![CDATA[capacidad]]></category>
		<category><![CDATA[espacio]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[hdd]]></category>
		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://patolin.com/?p=288</guid>
		<description><![CDATA[Si alguna vez te preguntaste que cantidad de información almacena facebook, y te respondiste &#8220;muchisima!!&#8221; pues ya tenemos datos reales. Juntando todas las imágenes y videos que publican los 845 millones de usuarios (a la fecha), llegamos a la cifra astronómica de 100 Peta Bytes de información almacenada. Esto, en terminos más entendibles, son 100 [...]]]></description>
			<content:encoded><![CDATA[<p>Si alguna vez te preguntaste que cantidad de información almacena facebook, y te respondiste &#8220;muchisima!!&#8221; pues ya tenemos datos reales.</p>
<p>Juntando todas las imágenes y videos que publican los 845 millones de usuarios (a la fecha), llegamos a la cifra astronómica de 100 Peta Bytes de información almacenada. Esto, en terminos más entendibles, son 100 cuadrillones de bytes almacenados&#8230;&#8230; bastante diría yo.</p>
<p><a href="http://techcrunch.com/author/bryce-durbin/">Bryce Durbin</a> de <a href="http://techcrunch.com/2012/02/02/visualizing-facebooks-media-store-how-big-is-100-petabytes/">Techcrunch</a>, ha publicado una infografía que nos explica mejor cuanto espacio físico necesitamos para almacenar semejante cantidad de información.  Para hacernos una idea, si tomamos un disco duro de portatil, de 320 GB de espacio, necesitaremos 312500 discos para llegar a los 100 pB, y si los apilamos uno sobre otro, tendríamos el equivalente a una torre de 2500m de altura. Les dejo la infografía.</p>
<p><a href="http://patolin.com/files/2012/02/fb-photos.jpg"><img class="aligncenter size-full wp-image-289" title="Infografía" src="http://patolin.com/files/2012/02/fb-photos.jpg" alt="" width="640" height="550" /></a></p>
<p><em>Fuente: <a href="http://techcrunch.com/2012/02/02/visualizing-facebooks-media-store-how-big-is-100-petabytes/">www.techcrunch.com</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://patolin.com/blog/2012/02/02/facebook-tiene-100-peta-bytes-de-informacion-almacenada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vuelven los domingos de radiocontrol!</title>
		<link>http://patolin.com/blog/2012/01/30/vuelven-los-domingos-de-radiocontrol/</link>
		<comments>http://patolin.com/blog/2012/01/30/vuelven-los-domingos-de-radiocontrol/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 05:35:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Proyectos]]></category>

		<guid isPermaLink="false">http://patolin.com/?p=284</guid>
		<description><![CDATA[Al fin, hubo el chance de probar el nuevo crawler en el terreno para el que fué creado. Luego de un upgrade de motor, fuimos con los amigos crawleros a trepar piedras. Les dejo un videíto de la acción de la tarde. &#160;]]></description>
			<content:encoded><![CDATA[<p>Al fin, hubo el chance de probar el nuevo crawler en el terreno para el que fué creado. Luego de un upgrade de motor, fuimos con los amigos crawleros a trepar piedras. Les dejo un videíto de la acción de la tarde.</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/fArclmCJtSE" frameborder="0" allowfullscreen></iframe></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://patolin.com/blog/2012/01/30/vuelven-los-domingos-de-radiocontrol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La solución a la electrónica troll</title>
		<link>http://patolin.com/blog/2012/01/30/la-solucion-a-la-electronica-troll/</link>
		<comments>http://patolin.com/blog/2012/01/30/la-solucion-a-la-electronica-troll/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 05:22:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://patolin.com/?p=280</guid>
		<description><![CDATA[Luego de que nos quedamos un poco confundido con este video de electrónica troll, al fin el autor nos presenta la respuesta. En realidad el circuito tiene 2 fuentes de AC dentro de la batería (vaya pulso!) y se colocaron diodos e inductores dentro de los leds. Les dejo el video para que descubran el [...]]]></description>
			<content:encoded><![CDATA[<p>Luego de que nos quedamos un poco confundido con este <a href="http://patolin.com/blog/2012/01/03/electronica-troll/">video de electrónica troll</a>, al fin el autor nos presenta la respuesta.</p>
<p>En realidad el circuito tiene 2 fuentes de AC dentro de la batería (vaya pulso!) y se colocaron diodos e inductores dentro de los leds. Les dejo el video para que descubran el secreto</p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/mzDTZuFJYX4" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://patolin.com/blog/2012/01/30/la-solucion-a-la-electronica-troll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Por si aun no entiendes la ley SOPA, la explicación gráfica</title>
		<link>http://patolin.com/blog/2012/01/20/por-si-aun-no-entiendes-la-ley-sopa-la-explicacion-grafica/</link>
		<comments>http://patolin.com/blog/2012/01/20/por-si-aun-no-entiendes-la-ley-sopa-la-explicacion-grafica/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 22:14:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://patolin.com/?p=276</guid>
		<description><![CDATA[A pesar de que ya fué retrasada la votación de esta conflictiva ley, les dejo una explicativa (y divertida) animación que nos ilustra de lo que puede pasar si la aprueban. Realizada por The Oatmeal, y aunque no lo crean (ni su mismo autor lo cree) fué publicitada por CNN, y resultó un trending topic [...]]]></description>
			<content:encoded><![CDATA[<p>A pesar de que ya fué retrasada la votación de esta conflictiva ley, les dejo una explicativa (y divertida) animación que nos ilustra de lo que puede pasar si la aprueban.</p>
<p>Realizada por <a href="http://www.theoatmeal.com">The Oatmeal</a>, y aunque no lo crean (<a href="http://theoatmeal.com/blog/sopa_results">ni su mismo autor lo cree</a>) fué publicitada por CNN, y resultó un trending topic en twitter el día del blackout de protesta contra SOPA&#8230;..</p>
<p>Diviertanse un rato y que tengan un buen fin de semana.</p>
<p><center><a href="http://theoatmeal.com/sopa"><img src="http://s3.amazonaws.com/theoatmeal-img/comics/sopa/sopa.gif" /></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://patolin.com/blog/2012/01/20/por-si-aun-no-entiendes-la-ley-sopa-la-explicacion-grafica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El internet a la huelga!</title>
		<link>http://patolin.com/blog/2012/01/17/el-internet-a-la-huelga/</link>
		<comments>http://patolin.com/blog/2012/01/17/el-internet-a-la-huelga/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 22:21:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://patolin.com/?p=270</guid>
		<description><![CDATA[El día de mañana, miércoles 18 de enero, muchos sitios importantes de internet, entrarán en una &#8220;huelga&#8221; en protesta contra la ley SOPA y PIPA que se han propuesto en Estados Unidos. Entre los sitios que entran en esta protesta (además de www.patolin.com) tenemos los siguientes: Google Wikipedia reddit Mozilla WordPress icanhazcheezburger network sites (FailBlog, [...]]]></description>
			<content:encoded><![CDATA[<p>El día de mañana, miércoles 18 de enero, muchos sitios importantes de internet, entrarán en una &#8220;huelga&#8221; en protesta contra la ley SOPA y PIPA que se han propuesto en Estados Unidos.</p>
<p>Entre los sitios que entran en esta protesta (además de <a title="patolin.com, lo máximo chapulin!" href="http://www.patolin.com">www.patolin.com</a>) tenemos los siguientes:</p>
<ul>
<ul>
<li><a href="http://www.businessweek.com/news/2012-01-17/google-plans-home-page-protest-against-u-s-piracy-measures.html">Google</a></li>
<li><a href="http://en.wikipedia.org/wiki/Wikipedia:SOPA_initiative/Action">Wikipedia</a></li>
<li><a href="http://blog.reddit.com/2012/01/stopped-they-must-be-on-this-all.html">reddit</a></li>
<li><a href="http://mozilla.org/">Mozilla</a></li>
<li><a href="http://wordpress.org/news/2012/01/help-stop-sopa-pipa/">WordPress</a></li>
<li><a href="https://twitter.com/#!/benhuh/status/157538541155516416">icanhazcheezburger network sites (FailBlog, theDailyWhat,Know Your Meme, etc)</a></li>
<li><a href="http://tucowsinc.com/news/2012/01/why-we-dont-like-sopa/">Tucows</a></li>
<li><a href="http://vanillaforums.org/">VanillaForums</a></li>
<li><a href="http://www.rawstory.com/rs/2012/01/17/announcement-raw-story-to-go-dark-on-january-18-to-protest-sopapipa/">The RawStory</a></li>
<li><a href="http://opencongress.com/">Open Congress / PPF</a></li>
<li><a href="http://blog.archive.org/2012/01/17/12-hours-dark-internet-archive-vs-censorship/">Internet Archive</a></li>
<li><a href="http://getmiro.com/">Miro</a></li>
<li><a href="http://universalsubtitles.org/">Universal Subtitles</a></li>
<li><a href="http://www.namecheap.com/">Namecheap</a></li>
<li><a href="http://twitpic.com/">TwitPic</a></li>
<li><a href="http://dotsub.com/">dotSUB</a></li>
<li><a href="http://front.moveon.org/the-shocking-facts-about-the-governments-move-to-censor-the-internet/?&amp;rep=4&amp;rc=tw.fol">MoveOn.org</a></li>
<li><a href="http://www.gog.com/en/news/gog_com_joins_opposition_to_sopa_and_pipa">Gog.com</a></li>
<li><a href="http://www.minecraft.net/">MineCraft</a></li>
<li><a href="https://twitter.com/#!/runasand/status/159336983578165248">Tor Project</a></li>
<li><a href="http://www.webhostingbuzz.com/blog/2012/01/04/were-firmly-against-sopa/">webhostingbuzz.com</a></li>
<li><a href="http://ragemaker.net/">RageMaker</a></li>
<li><a href="http://www.destructoid.com/destructoid-joins-pipa-sopa-blackout-protest-on-18th-219591.phtml">Destructiod</a></li>
<li><a href="http://www.shacknews.com/article/71965/firefall-dev-shutting-down-beta-site-in-protest-of-sopa">Red 5 studios</a></li>
<li><a href="http://www.asofterworld.com/">A Softer World</a></li>
<li><a href="http://www.greenpeace.org/international/en/news/Blogs/makingwaves/were-sorry-youre-not-allowed-to-read-this/blog/38656/">Greenpeace International</a></li>
<li><a href="http://www.theleakywiki.com/">The LeakyWiki</a></li>
<li><a href="http://www.xda-developers.com/announcements/xda-to-go-dark-on-jan-18th-at-8am-you-can-help-bring-us-back-online/">XDA-Developers</a></li>
<li><a href="http://www.cdt.org/">Center for Technology and Democracy</a></li>
<li><a href="http://eff.org/">Electronic Frontier Foundation</a></li>
<li><a href="http://status.net/2012/01/14/identi-ca-blackout-18-jan-2012-8am-8pm-est-to-protest-sopapipa">Indenti.ca</a></li>
<li><a href="http://www.majorleaguegaming.com/news/mlgs-network-will-go-black-on-jan-18-to-protest-sopa/">Major League Gaming</a></li>
<li><a href="http://imgur.com/blog/2012/01/16/imgur-joins-blackout/">Imgur</a></li>
<li><a href="https://twitter.com/#!/mikepocalyko/status/159280246464593921">Monticello Capitol</a></li>
<li><a href="https://crypto.cat/">Crypto Cat</a></li>
<li><a href="https://twitter.com/#!/colossal_mind/status/157976059076296704">Colossal Mind</a></li>
<li><a href="http://erratasec.blogspot.com/2012/01/january-18-sopa-blackout-day.html">Errata Security</a></li>
<li><a href="http://freakoutnation.com/2012/01/16/viva-la-revolucion-the-interwebz-is-shutting-down-for-12-hours/">FreakOutNation</a></li>
<li><a href="https://twitter.com/#!/slashTHREE/status/159309091167150080">SlashTHREE</a></li>
<li><a href="https://twitter.com/#!/TheFocusOnFacts/status/159270701998678016">Focus On the Facts</a></li>
<li><a href="https://twitter.com/#!/CanSomerr/status/159308854570659840">City News</a></li>
<li><a href="http://strategytune.com/">Strategy Tune</a></li>
<li><a href="https://twitter.com/#!/WPSecurityLock/status/159305080351371265">WPS Security Lock</a></li>
<li><a href="http://news.opensuse.org/2012/01/17/why-opensuse-org-goes-on-strike-tomorrow/">openSUSE</a></li>
<li><a href="https://twitter.com/#!/SmirkingChimp/status/159318223660126208">Smirking Chimp</a></li>
<li><a href="https://twitter.com/#!/breadnotbullets/status/159301914767536128">Bread Without Bullets</a></li>
<li><a href="http://infospace.ischool.syr.edu/2012/01/17/ischool-and-information-space-blackout-stop-sopa-wednesday-118/">iSchool at Syracuse University</a></li>
<li><a href="https://twitter.com/#!/il_nomacs/status/159301426798002176">nomacs Image Lounge</a></li>
<li><a href="https://twitter.com/#!/computerhope/status/159298890133274624">ComputerHope</a></li>
<li><a href="https://twitter.com/#!/PhantomTS/status/159297962483257346">PhantomTS</a></li>
<li><a href="https://twitter.com/#!/N2Map/status/159280430036697090">News2Map.com</a></li>
<li><a href="https://twitter.com/#!/XsNr/status/159279772558569472">Safex.tk</a></li>
<li><a href="https://twitter.com/#!/datelinezero/status/159279444492697601">DatelineZero</a></li>
<li><a href="https://twitter.com/#!/datelinezero/status/159279444492697601">Liberty Confidential</a></li>
<li><a href="https://twitter.com/#!/viktorixcom/status/159278839627923457">Victor Rix</a></li>
<li><a href="https://twitter.com/#!/WJS/status/159276177209565184">WJSimpson</a></li>
<li><a href="https://twitter.com/#!/SpursReloaded/status/159264824612765696">Spurs of The Moment</a></li>
<li><a href="http://www.peeje.com/peeje-goes-strike-stop-web-censorship-bills-congress-209">peeje</a></li>
<li><a href="http://tdc.digibase.ca/index.php?topic=3692.0">DigiBase</a></li>
<li><a href="http://ronbercume.com/sopa-protest-tomorrow/">Ron Bercume Design</a></li>
<li><a href="https://twitter.com/#!/jazzs3quence/status/159313463880065024">Jazz Sequence</a></li>
<li><a href="http://t.co/GKaVy7up">Plague Studio</a></li>
<li><a href="http://t.co/vNgY5VhO">ViperZeroOne</a></li>
<li><a href="http://www.elephant-talk.com/wiki/ETWiki_Home">Elephant Talk Wiki</a></li>
</ul>
</ul>
<div> Si deseas apoyar esta protesta, te recomiendo visitar el sitio <a href="http://sopastrike.com/#how-to-strike">http://sopastrike.com/#how-to-strike</a> y pegar el código javascript solicitado en tu sitio web.</div>
<div></div>
<div>Apoyemos a la libertad del internet!</div>
]]></content:encoded>
			<wfw:commentRss>http://patolin.com/blog/2012/01/17/el-internet-a-la-huelga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La PIPA y la SOPA &#8220;for dummies&#8221;</title>
		<link>http://patolin.com/blog/2012/01/11/la-pipa-y-la-sopa-for-dummies/</link>
		<comments>http://patolin.com/blog/2012/01/11/la-pipa-y-la-sopa-for-dummies/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 05:32:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[eeuu]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[gobierno]]></category>
		<category><![CDATA[leyes]]></category>
		<category><![CDATA[pipa]]></category>
		<category><![CDATA[pirateria]]></category>
		<category><![CDATA[sopa]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://patolin.com/?p=261</guid>
		<description><![CDATA[Desde hace algunas semanas, han tomado fuerza los comentarios y acciones de oposición en contra de ley &#8220;S.O.P.A.&#8221; que se pretende promulgar en los Estados Unidos. Pero que incluye esta ley, y en que nos afecta?  Trataré de escribir un pequeño artículo explicando la situación. Antes de nada, vamos a analizar un pequeño mal, con [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace algunas semanas, han tomado fuerza los comentarios y acciones de oposición en contra de ley &#8220;S.O.P.A.&#8221; que se pretende promulgar en los Estados Unidos. Pero que incluye esta ley, y en que nos afecta?  Trataré de escribir un pequeño artículo explicando la situación.</p>
<p><img class="aligncenter size-full wp-image-265" title="sopa" src="http://patolin.com/files/2012/01/sopa.jpg" alt="" width="400" height="400" /></p>
<p>Antes de nada, vamos a analizar un pequeño mal, con el que vivimos a diario:<strong> La Piratería</strong>. La adoramos, y la odiamos. <strong>La adoramos</strong> porque podemos conseguir todo el software, películas y música prácticamente gratis (seamos sinceros, todos todos todos acá hemos comprado peliculas piratas, bajado música gratis del internet, y cargado un keygen pirata del office 2007, porque ha caducado el que vino en nuestra laptop nueva), pero también<strong> la odiamos</strong>, porque como desarrolladores, prácticamente no tenemos ninguna protección de nuestras creaciones, y los gringos la odian aún más, porque les representa millones de dolares en pérdidas.</p>
<p><em>Como paréntesis, les comento un caso que me pasó. Hace algún tiempo, diseñé un pequeño programa para manejar un parqueadero, que fué solicitado por encargo para una empresa X, y cual fué mi sorpresa? que luego de un año, me entregaban tickets de parqueo, impresos por mi aplicación, en varios parqueaderos de la ciudad&#8230;&#8230; lo que me queda la duda es si revendieron el programa o si lo dieron gratis; si fuera el segundo caso, estaría mas tranquilo.</em></p>
<p>Esto por ponerles solo un caso, pero cuanta gente <em>(programadores, diseñadores, músicos)</em> se han visto mellados por la piratería, (recuerdan la película Suquillo Express? que quebró antes de que puedan parar las copias piratas que ya circulaban en la calle antes de su estreno) haciendo super complicado surgir con ideas propias, ya que todo el trabajo realizado, se vende por $1 o $2 si se copia en dvd.</p>
<p>Pero bueno, esto pasa acá en Ecuador, y volviendo al tema de la<strong> PIPA</strong> (no la de fumar) y la <strong>SOPA</strong> (no la de tomar en el almuerzo), tenemos que ubicarnos en el gran país del norte, Estados Unidos, donde la mayoría de las empresas de tecnología se encuentran ubicadas.</p>
<p><strong>PIPA</strong> son las siglas de <em>Protect IP Act</em>, es decir el Acto de Protección IP, y esta ley fué introducida en el Senado Americano el 12 de mayo del 2011. Esta ley, lo que intenta, es tomar acciones legales contra sitios web (ya sea que se encuentren en EEUU o fuera) que infrinjan sus leyes de propiedad intelectual. Si se aprueba, el gobierno podría hacer lo siguiente:</p>
<ul>
<li>Forzar a los ISPs de Estados Unidos,  bloquear el acceso a sitios web que infrinjan las leyes de propiedad intelectual americanas.</li>
<li>Iniciar acciones legales contra buscadores, blogs, directorios de sitios y demás, para remover obligatoriamente sitios que se encuentren en &#8220;listas negras&#8221;</li>
<li>Bloquear la publicidad en sitios que se encuentren  en dichas &#8220;listas negras&#8221;</li>
<li>Se permitiría que las compañías puedan demandar a sitios web que no &#8220;hagan un buen trabajo previniendo la piratería&#8221;</li>
</ul>
<p><strong>SOPA</strong> es un acrónimo par <em>Stop Online Piracy Act</em> (Acto para Detener la Piratería en Línea), y fué introducida el 26 de octubre de 2011, y no es más que una lista negra de sitios que promueven la piratería. Al igual que la PIPA, la SOPA trae algunas consecuencias para sus infractores, entre las que tenemos:</p>
<ul>
<li>Se podrían emitir órdenes judiciales en contra de los sitios que puedan promover la piratería.</li>
<li>Permitirá a las corporaciones privadas crear sus propias listas de sitios que crean que pueden romper sus políticas de derechos de autor. Estas compañías estarán en todo su derecho a demandar al sitio web en cuestión, para que realice bloqueos de los pagos que este reciba.</li>
<li>Los sistemas de pago tendrán la potestad de cortar su negocio con cualquier sitio web que sea su cliente, si es que pueden demostrar con una razón de peso, que este sitio infringe la ley de propiedad intelectual.</li>
</ul>
<div>En resumen, es un ataque directo a la piratería (o cualquier intento de ella), pero <strong>como nos afecta a nosotros?</strong> veamos unos ejemplos prácticos.</div>
<div></div>
<div>
<ul>
<li><strong>El internet se pondrá más lento</strong>: Como revisamos que un sitio web infringe derechos de autor? pues revisando su contenido. Y como no tenemos personal suficiente en el mundo para revisar todo lo que se publica en internet, toca implementar sistemas de filtrado de contenido, lo que implicaría que los datos se transmitirán más lento, por el mismo proceso de verificación de datos.</li>
<li><strong>Tendremos que velar por nuestro contenido y sus comentarios</strong>: Digamos que escribo un interesantísimo artículo en <a href="http://www.patolin.com">www.patolin.com</a>, y por ahí algún &#8220;mala gente&#8221; pone un comentario, copiando texto de otro sitio, peor aún, copia y pega un texto de un sitio del gobierno de EEUU&#8230;. fregamos todos! Estas leyes se aplican a TODO el contenido el sitio, y si!, los comentarios de los posts de los blogs, son también contenido. Ni hablar de poner tu video favorito en<a href="http://www.facebook.com" target="_blank"> facebook</a>!!!</li>
<li><strong>Podrían tomarse acciones extremistas:</strong> Digamos que en una de esas divertidas noches de viernes, uno de nuestros comedidos amigos nos graba cantando en karaoke una buena <a href="http://www.youtube.com/watch?v=v7gB9bBfq-o" target="_blank">canción popera gringa</a> y lo sube a youtube. Inmediatamente nos caen los derechos de autor (no hemos pagado derechos por crear un video con esa canción), así que chau youtube.</li>
</ul>
</div>
<div></div>
<div>Muchos de nosotros bloggers, compartimos información, sacamos de un lado y de otro y ponemos cosas nuevas en nuestros blogs, y gente toma esto de referencia para seguir sacando nuevos artículos y generar más conocimiento. Es el espíritu libre del internet y así debería continuar. Quizás si se llegan a aprobar estas 2 leyes, el internet tal como lo conocemos, deje de existir&#8230;.. solo imaginen el internet sin <a href="http://www.wikipedia.com" target="_blank">wikipedia</a>&#8230;. tétrico no?</div>
<div></div>
<div></div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://patolin.com/blog/2012/01/11/la-pipa-y-la-sopa-for-dummies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizaciones para WordPress</title>
		<link>http://patolin.com/blog/2012/01/06/optimizaciones-para-wordpress/</link>
		<comments>http://patolin.com/blog/2012/01/06/optimizaciones-para-wordpress/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 19:34:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://patolin.com/?p=254</guid>
		<description><![CDATA[Desde www.thatexplainsalot.com, les comparto un interesante artículo acerca de la optimización de wordpress, que cubre desde mejoras en el cache del navegador y del servidor, hasta algunos trucos para mejorar el rendimiento del MySql. Se los recomiendo. WordPress Optimization Bible This WordPress optimization tutorial is the most comprehensive guide to WordPress optimization created with the [...]]]></description>
			<content:encoded><![CDATA[<p>Desde <a href="http://thatexplainsalot.com/?p=733">www.thatexplainsalot.com</a>, les comparto un interesante artículo acerca de la optimización de <a href="http://www.wordpress.org">wordpress</a>, que cubre desde mejoras en el cache del navegador y del servidor, hasta algunos trucos para mejorar el rendimiento del MySql. Se los recomiendo.</p>
<h2>WordPress Optimization Bible</h2>
<section>This WordPress optimization tutorial is the most comprehensive guide to WordPress optimization created with the intention of helping you troubleshoot performance related issues and provide you with guidelines on how to speed up your WordPress site..</p>
<p>If you ever experienced slow WordPress admin panel, “MySQL server has gone away” message, pages taking forever to load or you want to prepare your site for a major increase in traffic (for example Digg front page) this is the guide for you.</p>
<h3 id="section-1">1. Check the Site stats</h3>
<p>Most commonly the problem with slow loading sites is just the sheer size of the page. A typical webpage today will be loaded with images, flash, videos and javascripts all which take a significant portion of bandwidth.</p>
<p>If you want to start dealing with this issue seriously you need to get <a title="Firefox " href="http://www.mozilla.com/firefox/">Firefox </a>browser, <a href="http://www.getfirebug.com/">Firebug </a>extension and <a title="Yslow " href="http://developer.yahoo.com/yslow/">Yslow </a>plugin.</p>
<p>Yslow module will allow you to get a performance score from 0-100.  Getting your site to 80+ score should be your aim.</p>
<p>Try to keep your page size under 100KB. Try to keep it under 50kb if possible. If you have a lot of multimedia content then by all means learn to use YSlow.</p>
<blockquote><p><a href="http://developer.yahoo.com/performance/rules.html">Learn</a> about ways to improve the page loading speed.</p></blockquote>
<p>Another useful Firefox extension worth checking out is Google’s <a href="http://code.google.com/speed/page-speed/">Page Speed</a>.</p>
<h3 id="section-2">2. Check your (Vista) System</h3>
<p>In rare occasions when you are loading your and other sites slowly, it can be your Vista system that is causing the slowdown.</p>
<blockquote><p>If you are running Vista <a href="http://itsvista.com/2007/02/itsvista-tip-37-why-certain-web-sites-are-slow-in-vista/">check this article</a> for a diagnosis and a possible solution.</p></blockquote>
<h3 id="section-3">3. Check the Plugins</h3>
<p>Plugins are usually the prime suspect for slowdowns. With so many WordPress plugins around, chance is you might have installed a plugin which does not use the resources in an optimum way.</p>
<p>For example such plugins that caused slowdowns in the past have been <a href="http://mylifethinking.com/life/is-your-wordpress-blog-too-slow/">Popularity contest</a>, <a href="http://www.popularwealth.com/index.php/wordpress-admin-panel-slow">aLinks</a> or <a href="http://www.groovypost.com/blogs/mrgroove/wordpress/fix-for-slow-wordpress-admin-pages/">@Feed</a>.</p>
<blockquote><p>To check plugins, deactivate all of them and check the critical areas of the site again. If everything runs OK, re-enable the plugins one by one until you find the problematic plugin.</p></blockquote>
<p>After finding the cause you can either write a message to the plugin author and hope they fix it or search for an alternative.</p>
<h3 id="section-4">4. Check your Theme</h3>
<p>If it’s not the plugins, and you are troubleshooting slowdown of the site, you should check it with a different theme.</p>
<p>Themes can include code with plugin capabilities inside the theme’s <em>function.php</em> file so everything what applies to plugins can apply to the theme.</p>
<p>Also, themes may use excessive JavaScript or image files, causing slow loading of the page because of huge amount of data to transfer and/or number of http requests used.</p>
<blockquote><p>WordPress comes installed with a default theme and it’s best used to test the site if your theme is the suspect for poor performance.</p></blockquote>
<p>If you discover your theme is causing the slowdowns, you can use the excellent Firebug tool for Firefox browser to debug the problem. Learn more about <a href="http://getfirebug.com/">Firebug</a>, your new best friend.</p>
<p>You can also use <a href="http://www.websiteoptimization.com/services/analyze/">this site</a> get general information about the site very fast.</p>
<h3 id="section-5">5. Optimize Database Tables</h3>
<p>Database tables should be periodically optimized (and repaired if necessary) for optimum performance.</p>
<blockquote><p>I recommend using <a href="http://lesterchan.net/portfolio/programming/php/">WP-DBManager</a> plugin which provides this functionality as well as database backup, all crucial for any blog installation.</p></blockquote>
<p>WP-DBManager allows you to schedule and forget, and it will take care of all the work automatically.</p>
<p>Other alternative is manually optimizing and repairing your table through a tool like phpmyadmin.</p>
<h3 id="section-6">6. Turn off Post Revisions</h3>
<p>With WordPress 2.6, post version tracking mechanism was introduced. For example, every time you “Save” a post, a revision is written to the database. If you do not need this feature you can easily turn it off by adding one line to your <em>wp-config.php</em> file, found in the installation directory of your WordPress site:</p>
<blockquote><p>define(‘WP_POST_REVISIONS’, false);</p></blockquote>
<p>If you have run a blog with revisions turned on for a while, chance is you will have a lot of revision posts in your database. if you wish to remove them for good, simply run this query (for example using the mentioned WP-DBManager) plugin.</p>
<blockquote><p>DELETE FROM wp_posts WHERE post_type = “revision”;</p></blockquote>
<p>This will remove all “revision” posts from your database, making it smaller in the process.</p>
<p><strong>NOTE: </strong>Do this with care. If you are not sure what you are doing, make sure to at least create a backup of the database first or even better, ask a professional to help you.</p>
<h3 id="section-7">7. Implement Caching</h3>
<p>Caching is a method of retrieving data from a ready storage (cache) instead of using resources to generate it every time the same information is needed. Using cache is much faster way to retrieve information and is generally recommended practice for most modern applications.</p>
<p>The easiest way to implement caching (and usually the only way if your blog is on shared hosting) is to use a caching plugin.</p>
<p>The most commonly used is <a href="http://ocaoimh.ie/wp-super-cache/">WP Super Cache</a>.</p>
<p>A new kid on the block, <a href="http://wordpress.org/extend/plugins/w3-total-cache/">W3 Total Cache</a> is more powerful alternative, maturing with every day.</p>
<h3 id="section-8">8. MySQL Optimization</h3>
<p>MySQL can save the results of a query in it’s own cache. To enable it edit the MySQL configuration file (usually <strong>/etc/my.cnf)</strong> and add these lines:</p>
<blockquote><p>query_cache_type = 1<br />
query_cache_limit = 1M<br />
query_cache_size = 16M</p></blockquote>
<p>This will create a 16 MB query cache after you restart the MySQL server (the amount depends on the amount of available RAM, I use around 250MB on 4GB machine).</p>
<p>To check if it is properly running, run this query:</p>
<blockquote><p>SHOW STATUS LIKE ‘Qcache%’;</p></blockquote>
<p>Example result:</p>
<blockquote>
<table id="table_results" border="0">
<tbody>
<tr>
<td>Qcache_free_blocks</td>
<td>718</td>
</tr>
<tr>
<td>Qcache_free_memory</td>
<td>13004008</td>
</tr>
<tr>
<td>Qcache_hits</td>
<td>780759</td>
</tr>
<tr>
<td>Qcache_inserts</td>
<td>56292</td>
</tr>
<tr>
<td>Qcache_lowmem_prunes</td>
<td>0</td>
</tr>
<tr>
<td>Qcache_not_cached</td>
<td>3711</td>
</tr>
<tr>
<td>Qcache_queries_in_cache</td>
<td>1715</td>
</tr>
<tr>
<td>Qcache_total_blocks</td>
<td>4344</td>
</tr>
</tbody>
</table>
</blockquote>
<h4 id="section-9">Further MySQL Optimization:</h4>
<p>There a lot of options you can play with so here is my MySQL config file instead, tuned in for 4GB, quad-core dedicated machine. This will most probably not work for your machine out of box, use it just as a general guideline.</p>
<blockquote><p>[mysqld]<br />
bulk_insert_buffer_size = 8M<br />
connect_timeout=10<br />
interactive_timeout=50<br />
join_buffer=1M<br />
key_buffer=250M<br />
max_allowed_packet=16M<br />
max_connect_errors=10<br />
max_connections=100<br />
max_heap_table_size = 32M<br />
myisam_sort_buffer_size=96M<br />
query_cache_limit = 4M<br />
query_cache_size = 250M<br />
query_cache_type = 1<br />
query_prealloc_size = 65K<br />
query_alloc_block_size = 128K<br />
read_buffer_size=1M<br />
read_rnd_buffer_size=768K<br />
record_buffer=1M<br />
safe-show-database<br />
skip-innodb<br />
skip-locking<br />
skip-networking<br />
sort_buffer=1M<br />
table_cache=4096<br />
thread_cache_size=1024<br />
thread_concurrency=8<br />
tmp_table_size = 32M<br />
wait_timeout=500</p>
<p># for slow queries, comment when not used<br />
#log-slow-queries=/var/log/mysql-slow.log<br />
#long_query_time=1<br />
#log-queries-not-using-indexes</p>
<p>[mysqld_safe]<br />
nice = -5<br />
open_files_limit = 8192</p>
<p>[mysqldump]<br />
quick<br />
max_allowed_packet = 16M</p>
<p>[myisamchk]<br />
key_buffer = 64M<br />
sort_buffer = 64M<br />
read_buffer = 16M<br />
write_buffer = 16M</p></blockquote>
<p><strong>Tip #2:</strong><br />
Here is a <a href="http://www.hopelessgeek.com/2006/03/21/optimizing-a-vps-for-getting-dugg">further read</a> regarding MySQL optimization and another one <a href="http://www.interworx.com/forums/showthread.php?p=2346">here</a>.</p>
<p>Extremely useful <a href="http://hackmysql.com/mysqlreport">mysqlrepot</a> tool will help you tweak that mysql like nothing. <a href="http://wiki.mysqltuner.com/MySQLTuner">Mysql tuner</a> is one of the best and quickest tools out there to tell you how can you fix up your database. <a href="http://www.day32.com/MySQL/">MySQL Tuning primer</a> and <a href="http://gert.sos.be/en/">MySQL Activity Report</a> are another two scripts to try out.</p>
<p><a href="http://www.maatkit.org/">Maatkit</a> is an extremely useful toolkit for managing MySQL.</p>
<p>MySQL slow query log is valuable for getting info about most problematic queries. To activate it you can edit your my.cnf</p>
<blockquote><p>log-slow-queries=/var/log/mysql-slow.log<br />
long_query_time=1<br />
log-queries-not-using-indexes</p></blockquote>
<p>This will create a log of slow queries and those not using indexes. Now you need to be able to <a href="http://www.ducea.com/2006/11/06/identifying-mysql-slow-queries/">identify</a> the slow ones for which you can use external <a href="http://www.mysqlperformanceblog.com/2006/09/06/slow-query-log-analyzes-tools/">slow log filter and parsing</a> <a href="http://hackmysql.com/mysqlsla">tools</a>. Using ‘<a href="http://dev.mysql.com/doc/refman/5.0/en/using-explain.html">EXPLAIN</a>‘ is an effective way to understand and optimize complex queries.</p>
<p>You can also install <a href="http://jeremy.zawodny.com/mysql/mytop/">mytop</a>, a ‘top’ command clone that works with MySQL.</p>
<h3 id="section-10">9. PHP Opcode Cache</h3>
<p>PHP is interpreted language, meaning that every time PHP code is started, it is compiled into the so called op-codes, which are then run by the system. This compilation process can be cached by installing an opcode cache such as <a href="http://eaccelerator.net/">eAccelerator</a>. There are <a href="http://en.wikipedia.org/wiki/Alternative_PHP_Cach">other caching solutions out there</a> as well.</p>
<p>To install eAccelerator, unpack the archive and go to the eAccelerator folder. Then type:</p>
<blockquote><p>phpize<br />
./configure<br />
make<br />
make install</p></blockquote>
<p>This will install eAccelerrator.</p>
<p>Next create temp folder for storage:</p>
<blockquote><p>mkdir /var/cache/eaccelerator</p>
<p>chmod 0777 /var/cache/eaccelerator</p></blockquote>
<p>Finally to enable it, add these lines to the end of your php.ini file (usually <strong>/etc/php.ini</strong> or <strong>/usr/lib/php.ini</strong>):</p>
<blockquote><p>extension=”eaccelerator.so”<br />
eaccelerator.shm_size=”16?<br />
eaccelerator.cache_dir=”/var/cache/eaccelerator”<br />
eaccelerator.enable=”1?<br />
eaccelerator.optimizer=”1?<br />
eaccelerator.check_mtime=”1?<br />
eaccelerator.debug=”0?<br />
eaccelerator.filter=”&#8221;<br />
eaccelerator.shm_max=”0?<br />
eaccelerator.shm_ttl=”0?<br />
eaccelerator.shm_prune_period=”0?<br />
eaccelerator.shm_only=”0?<br />
eaccelerator.compress=”1?<br />
eaccelerator.compress_level=”9?</p></blockquote>
<p>The changes will be noticeable at once, as PHP does not need to be ‘restarted’.</p>
<p><strong>Note #1:</strong> WP Super Cache and eAccelerator work <a href="http://blog.sweetnam.eu/2007/11/07/supercache-eaccelerator-and-wordpress-benchmarks/">fine together</a> showing further increase in performance.</p>
<p><strong>Note #2:</strong> If you like even more possibility for performance, check the <a href="http://murmatrons.armadillo.homeip.net/features/experimental-eaccelerator-wp-super-cache">WP Super Cache and eAccelerator plugin</a>.</p>
<p><strong>Note #3:</strong> Unfortunately eAccelerator won’t work if PHP is run as CGI. You can try <a href="http://morph3ous.net/2006/08/03/suexec-php-514-fastcgi-and-cpanel/">using fastcgi</a> which will work with suExec and eAccelerator.</p>
<p><strong>Note #4:</strong>W3 Total Cache mentioned earlier already utilities both memcached and APC making it amazingly fast.</p>
<h3 id="section-11">10. Web Server optimization</h3>
<p>Apache optimization is something books have been written on so I will first forward you to this article <a href="http://httpd.apache.org/docs/1.3/misc/perf-tuning.html">here</a>. Indepth apache compilation tips <a href="http://tldp.org/LDP/LGNET/123/vishnu.html">here</a>, performance tuning <a href="http://www.devside.net/articles/apache-performance-tuning">here</a>, VPS tips <a href="http://www.agnivo.com/tech/vps-mysql-and-apache-optimization-guide-27.html">here </a>and keep alive tips <a href="http://virtualthreads.blogspot.com/2006/01/tuning-apache-part-1.html">here</a>.</p>
<p>You can easily test changes in your configuration by running a test from your command prompt</p>
<blockquote><p>ab -t30 -c5 http://www.mysite.com/</p></blockquote>
<p>and comparing results. I get around 200 req/s on VPS server.</p>
<p>For more flexible testing you can use <a href="http://www.xenoclast.org/autobench/">Autobench </a>which works in conjunction with <a href="http://www.hpl.hp.com/research/linux/httperf/">httperf</a>, another benchmarking tool.</p>
<p>Use a fast web server like <a href="http://nginx.net/">nginx</a> to serve static content (ie. images) while passing dynamic requests is another <a href="http://intranation.com/entries/2008/09/using-nginx-reverse-proxy/">popular</a> <a href="http://www.hostmedic.com/admin/network_administration/nginx-apache-happy-fast-cpanel-server/">technique</a> <a href="http://figvam.blogspot.com/2008/05/using-nginx-to-accelerate-apache-on.html">you</a> <a href="http://www.mr-san.com/nginx-reverse-proxy-load-balance/">can</a> <a href="http://articles.slicehost.com/2007/12/3/ubuntu-gutsy-adding-an-nginx-init-script">use</a> to improve <a href="https://calomel.org/nginx.html">performance</a>.</p>
<p><strong>Note #1:</strong> More cool resources. <a href="http://www.die.net/musings/page_load_time/">Optimizing Page load time</a> and a great <a href="http://newestindustry.org/2006/08/30/web-performance-part-i-fundamentals/">series on website performance</a>.</p>
<p><strong>Note #2:</strong> You can find even more tips&amp;tricks on <a href="http://elliottback.com/wp/why-my-wordpress-site-is-so-much-faster-than-yours/">Elliot Back’s</a> site</p>
<h3 id="section-12">11. “MySQL server has gone away” workaround</h3>
<p>This WordPress database error appears on certain configurations and it manifests in very slow and no response, usually on your admin pages.</p>
<blockquote><p>Workaround for this MySQL problem has been best addressed <a href="http://robsnotebook.com/wordpress-mysql-gone-away">in this article</a>.</p></blockquote>
<p>This problem evidently exists, but the suggested fix is valid only until you upgrade your WordPress. Hopefully it will be further researched and added into the WordPress core in the future.</p>
<p><strong>Note #1:</strong> Sometimes increasing MySQL wait_timeout to 1000 will help with this issue.</p>
<h3 id="section-13">12. Fixing posting not possible problem</h3>
<p>If you experience WordPress admin panel crawling to a halt, with inability to post or update certain posts, you are probably hitting the mod_security wall.</p>
<p>ModSecurity is Apache module for increasing web site security by preventing system intrusions. However, sometimes it may decide that your perfectly normal WordPress MySQL query is trying to do something suspicious and black list it, which manifests in very slow or no response of the site.</p>
<p>To test if this is the case, check your Apache error log, for example:</p>
<blockquote><p>tail -f /usr/local/apache/logs/error_log</p></blockquote>
<p>and look for something like this:</p>
<blockquote><p><strong>ModSecurity: Access denied with code 500</strong> (phase 2) … [<strong>id "300013"</strong>] [rev "1"] [msg "<strong>Generic SQL injection protection</strong>"] [severity "CRITICAL"] [hostname  www.prelovac.com"] [<strong>uri “/vladimir/wp-admin/page.php”</strong></p></blockquote>
<p>It tells you the access for this page was denied because of a security rule with id 300013. Fixing this includes white-listing this rule for the page in question.</p>
<p>To do that, edit apache config file (for example <strong>/usr/local/apache/conf/modsec2/exclude.conf</strong>) and add these lines:</p>
<blockquote><p>SecRuleRemoveById 300013</p></blockquote>
<p>This will white list the page for the given security rule and your site will continue to work normally.</p>
<h3 id="section-14">13. RSS Pings and Pingbacks</h3>
<p>Reasons for slow WordPress posting may include rss ping and pingback timeouts.</p>
<p>By default WordPress will try to ping servers listed in your <a title="ping list" href="http://www.prelovac.com/vladimir/wordpress-ping-list">ping list</a> (found in <strong>Settings-&gt;Writing </strong>panel) and one of them may timeout slowing the entire process.</p>
<p>Second reason are post pingbacks, mechanism in which WordPress notifies the sites you linked to in your article. You can disable pingbacks in <strong>Settings-&gt;Discussion</strong> by un-checking option “<strong>Attempt to notify any blogs linked to from the article (slows down posting)</strong>“.</p>
<blockquote><p>Try clearing ping list and disabling pingbacks to see if that helps speed up your posting time.</p></blockquote>
<h3 id="section-15">Following are the general Rules for optimizing page loading time</h3>
<h3 id="section-16">14. Use subdomains to share the load</h3>
<p>Most browsers are set to load 2-4 files from a domain in parallel. If you move some files to a different domain (subdomain will work) the browser will start downloading 2-4 more files in parallel.</p>
<p>It is good idea to move your theme image files to a subdomain you create. I have created demo.prelovac.com/images and moved my theme images there. I have then changed the theme style.css to reflect the full url to the new image files. Job done!</p>
<h3 id="section-17">15. Minimize the number of HTTP requests</h3>
<p>You can lower the number of HTTP requests by using fewer images (or placing all images in one large image and position them with CSS), fewer javascripts, fewer css files (usually meaning fewer plugins).</p>
<p>Good effort has been made by <a href="http://aciddrop.com/php-speedy/">PHP speedy plugin</a> which will merge all your JavaScript and all CSS files in one big file which really helps in lowering the HTTP request numbers. The biggest drawback of PHP Speedy is that it’s not 100% compatible with all plugins.</p>
<p>Also use the <a href="http://www.csssprites.com/">CSS Sprite generator</a> to move all your images into one image and then use CSS background-position to display them. This will cut your number of HTTP requests significantly.</p>
<h3 id="section-18">16. Compress the content using apache .htaccess</h3>
<p>If you have our own server you can chose to gzip all content sent to browsers. This will lower the loading time significantly as most html pages compress very well.</p>
<p>Add this code to your .htaccess</p>
<blockquote><p>AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript application/x-httpd-php application/rss+xml application/atom_xml text/javascript</p></blockquote>
<h3 id="section-19">17. Create expires headers</h3>
<p>Expire headers tell the browser how long it should keep the content in cache. Most of the images on your site never change and it is good idea to keep them cached locally.</p>
<p>Add this to your .htaccess (make sure mod_expires is loaded in your apache if you have problems)</p>
<div>
<div>
<pre>&lt;FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css|swf)$"&gt;
ExpiresActive on
ExpiresDefault "access plus 30 days"
Header unset ETag
FileETag None
&lt;/FilesMatch&gt;</pre>
</div>
</div>
<p>Here is an <a href="http://www.askapache.com/htaccess/apache-htaccess.html">alternative setting</a>:</p>
<div>
<div>
<pre>Header unset Pragma
FileETag None
Header unset ETag

# 1 YEAR

Header set Cache-Control "public"
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
Header unset Last-Modified

# 2 HOURS

Header set Cache-Control "max-age=7200, must-revalidate"

# CACHED FOREVER
# MOD_REWRITE TO RENAME EVERY CHANGE

Header set Cache-Control "public"
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
Header unset Last-Modified</pre>
</div>
</div>
<p>Use <a href="http://www.ircache.net/cgi-bin/cacheability.py">cacheability engine</a> to check your cache configuration.</p>
<h3 id="section-20">18. Cache Gravatars</h3>
<p>Many blogs use Gravatars, the little images next to your comments. However gravatars have two big flaws in regards to site optimization:</p>
<ul>
<li>Every gravatar image is a new HTTP requests even if same image is loaded (page with 100 comments would have 100 additional HTTP requests)</li>
<li>Gravatar images do not contain expire headers</li>
</ul>
<p>What we can do is create a local gravatar cache, where images would be cached and served from our site. Ideally you would place the gravatar cache on a separate subdomain (see first heading).</p>
<p>I use a <a href="http://zenpax.com/">plugin from Zenpax.com </a>which allows all gravatars to be cached locally.</p>
<h3 id="section-21">19. Optimize the images with smush.it</h3>
<p>It is often overlooked that your images can be optimized (made smaller) which can significantly reduce loading times.</p>
<p>Wouldn’t it be perfect if you could open a site, press a button in your browser and get all images on the site optimized and made available in a single zip file. That is possible thanks to <a href="http://smush.it/">smush.it</a> and their Firefox plugin. It is amazing how effective this is!</p>
<h3 id="section-22">20. CSS on top, JavaScript on bottom</h3>
<p>It is golden practice to put CSS files on top of the page so they are loaded first. JavaScript files should be placed on the <a href="http://developer.yahoo.com/performance/rules.html#js_bottom">bottom of the page</a> (when possible). I have created a simple plugin which will move the <a title="properly registered" href="http://www.prelovac.com/vladimir/best-practice-for-adding-javascript-code-to-wordpress-plugin">properly registered</a> JavaScript files to the bottom of your pages. The plugin is called <a href="http://www.prelovac.com/vladimir/wordpress-plugins/footer-javascript">Footer javaScript</a>.</p>
<h3 id="section-23">Conclusion</h3>
<p>Modern webservers and websites have grown to depend on many different factors.</p>
<p>This article covered various approaches to optimization from system level apache, PHP and MySQL changes to settings within your WordPress.</p>
<p>I hope following this guide will help you create a fast and responsive WordPress based site.</p>
</section>
]]></content:encoded>
			<wfw:commentRss>http://patolin.com/blog/2012/01/06/optimizaciones-para-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Truquitos para jQuery</title>
		<link>http://patolin.com/blog/2012/01/04/truquitos-para-jquery/</link>
		<comments>http://patolin.com/blog/2012/01/04/truquitos-para-jquery/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 04:08:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://patolin.com/?p=251</guid>
		<description><![CDATA[Si has seguido el paso de jQuery por la internet, sabrás que cada día facilita más la creación de aplicaciones web mucho mas prácticas y fáciles de programar. Les dejo un recopilatorio de snippets de jquery, desde www.catswhocode.com. Preloading images Preloading images is useful: Instead of loading an image when the user request it, we [...]]]></description>
			<content:encoded><![CDATA[<p>Si has seguido el paso de jQuery por la internet, sabrás que cada día facilita más la creación de aplicaciones web mucho mas prácticas y fáciles de programar. Les dejo un recopilatorio de snippets de jquery, desde <a href="http://www.catswhocode.com/blog/10-awesome-jquery-snippets" target="_blank">www.catswhocode.com</a>.</p>
<h2>Preloading images</h2>
<p>Preloading images is useful: Instead of loading an image when the user request it, we preload them in the background so they are ready to be displayed. Doing so in jQuery is very simple, as shown below:</p>
<pre>(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }

jQuery.preLoadImages("image1.gif", "/path/to/image2.png");</pre>
<p><strong>Source: <a href="http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript">http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript</a></strong></p>
<h2>target=”blank” links</h2>
<p>The following snippet will open all links with the <code>rel="external"</code> attribute in a new tab/window. The code can be easily customized to only open links with a specific class.</p>
<pre>$('a[@rel$='external']').click(function(){
     this.target = "_blank";
});

/*
   Usage:
   &lt;a href="http://www.catswhocode.com" rel="external"&gt;catswhocode.com&lt;/a&gt;
*/</pre>
<p><strong>Source: <a href="http://snipplr.com/view/315/-jquery--target-blank-links/">http://snipplr.com/view/315/-jquery–target-blank-links/</a></strong></p>
<h2>Add a class to the &lt;body&gt; tag if JavaScript is enabled</h2>
<p>This snippet is just a line of code, but it is one of the easiest way to detect if JavaScript is enabled on the client browser. If yes, a <code>hasJS</code> class will be added to the <code>&lt;body&gt;</code> tag.</p>
<pre>$('body').addClass('hasJS');</pre>
<p><strong>Source: <a href="http://eisabainyo.net/weblog/2010/09/01/10-useful-jquery-snippets/">http://eisabainyo.net/weblog/2010/09/01/10-useful-jquery-snippets/</a></strong></p>
<h2>Smooth scrolling to an anchor</h2>
<p>jQuery is known for its ability to let developers easily create stunning visual effects. A simple, but nice effect is smooth sliding to an anchor. The following snippet will create a smooth sliding effect when a link with the <code>topLink</code>class is clicked.</p>
<pre>$(document).ready(function() {
	$("a.topLink").click(function() {
		$("html, body").animate({
			scrollTop: $($(this).attr("href")).offset().top + "px"
		}, {
			duration: 500,
			easing: "swing"
		});
		return false;
	});
});</pre>
<p><strong>Source: <a href="http://snipplr.com/view.php?codeview&amp;id=26739">http://snipplr.com/view.php?codeview&amp;id=26739</a></strong></p>
<h2>Fade in/out on hover</h2>
<p>Another very cool effect – which is very popular among clients – is indeed the fade in/fade out on mouseover. The code below set opacity to 100% on hover, and to 60% on mouseout.</p>
<pre>$(document).ready(function(){
    $(".thumbs img").fadeTo("slow", 0.6); // This sets the opacity of the thumbs to fade down to 60% when the page loads

    $(".thumbs img").hover(function(){
        $(this).fadeTo("slow", 1.0); // This should set the opacity to 100% on hover
    },function(){
        $(this).fadeTo("slow", 0.6); // This should set the opacity back to 60% on mouseout
    });
});</pre>
<p><strong>Source: <a href="http://snipplr.com/view/18606/">http://snipplr.com/view/18606/</a></strong></p>
<h2>Equal column height</h2>
<p>When building a column based website, you often want that all columns have the same height, as displayed in a good old table. This snippet calculate the height of the higher column and automatically adjust all other columns to this height.</p>
<pre>var max_height = 0;
$("div.col").each(function(){
    if ($(this).height() &gt; max_height) { max_height = $(this).height(); }
});
$("div.col").height(max_height);</pre>
<p><strong>Source: <a href="http://web.enavu.com/tutorials/top-10-jquery-snippets-including-jquery-1-4/">http://web.enavu.com/tutorials/top-10-jquery-snippets-including-jquery-1-4/</a></strong></p>
<h2>Enable HTML5 markup on older browsers</h2>
<p>HTML5 is definitely the future of client-side web development. Unfortunely, some old browsers do not even recognize new tags such as <code>header</code> or <code>section</code>. This code will force old browsers to recognize the new tags introduced by HTML5.</p>
<pre>(function(){if(!/*@cc_on!@*/0)return;var e = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(','),i=e.length;while(i--){document.createElement(e[i])}})()</pre>
<p>A better solution is to link the .js file to the <code>&lt;head&gt;</code> part of your HTML page:</p>
<pre>&lt;!--[if lt IE 9]&gt;
&lt;script src="http://html5shim.googlecode.com/svn/trunk/html5.js"&gt;&lt;/script&gt;
&lt;![endif]--&gt;</pre>
<p><strong>Source: <a href="http://remysharp.com/2009/01/07/html5-enabling-script/">http://remysharp.com/2009/01/07/html5-enabling-script/</a></strong></p>
<h2>Test if the browser supports a specific CSS3 property</h2>
<p>Here is a simple jQuery function to check if the client browser supports a specific CSS3 property. In this example,<code>border-radius</code> is the property we want to check, but of course this can be modified easily.</p>
<p>Note that when passing the property, you have to omit the dash to prevent syntax error. So instead of <code>border-radius</code>, you have to pass “borderRadius” or “BorderRadius”.</p>
<pre>var supports = (function() {
   var div = document.createElement('div'),
      vendors = 'Khtml Ms O Moz Webkit'.split(' '),
      len = vendors.length;

   return function(prop) {
      if ( prop in div.style ) return true;

      prop = prop.replace(/^[a-z]/, function(val) {
         return val.toUpperCase();
      });

      while(len--) {
         if ( vendors[len] + prop in div.style ) {
            // browser supports box-shadow. Do what you need.
            // Or use a bang (!) to test if the browser doesn't.
            return true;
         }
      }
      return false;
   };
})();

if ( supports('textShadow') ) {
   document.documentElement.className += ' textShadow';</pre>
<p><strong>Source: <a href="http://snipplr.com/view/44079">http://snipplr.com/view/44079</a></strong></p>
<h2>Get url parameters</h2>
<p>Getting url parameters is pretty easy using jQuery. The following snippet will do the job!</p>
<pre>$.urlParam = function(name){
	var results = new RegExp('[\\?&amp;]' + name + '=([^&amp;#]*)').exec(window.location.href);
	if (!results) { return 0; }
	return results[1] || 0;
}</pre>
<p><strong>Source: <a href="http://snipplr.com/view/26662">http://snipplr.com/view/26662</a></strong></p>
<h2>Disable the “Enter” key in forms</h2>
<p>By default, a form can be submitted by pressing the “Enter” key. Thought, on some form, this keyboard shortcut can cause problems. Here is how you can prevent unwanted form submission by disabling the “Enter” key with jQuery.</p>
<pre>$("#form").keypress(function(e) {
  if (e.which == 13) {
    return false;
  }
});</pre>
<p><strong>Source: <a href="http://snipplr.com/view/10943/disable-enter-via-jquery/">http://snipplr.com/view/10943/disable-enter-via-jquery/</a></strong></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://patolin.com/blog/2012/01/04/truquitos-para-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un computador por $25? quizas el 2012 sea el año donde lo veamos</title>
		<link>http://patolin.com/blog/2012/01/03/un-computador-por-25-quizas-el-2012-sea-el-ano-donde-lo-veamos/</link>
		<comments>http://patolin.com/blog/2012/01/03/un-computador-por-25-quizas-el-2012-sea-el-ano-donde-lo-veamos/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 04:13:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://patolin.com/?p=243</guid>
		<description><![CDATA[Este último tiempo, hemos visto grandes avances en los equipos embebidos, que contienen grandes funcionalidades en empaques cada vez más pequeños. Cada vez vemos y tenemos a nuestra disposición microcontroladores más y más poderosos. En nuestras épocas de estudiantes, ni nos imaginabamos realizar una transformada FFT en un micro, o conectarlo a un computador via [...]]]></description>
			<content:encoded><![CDATA[<p>Este último tiempo, hemos visto grandes avances en los equipos embebidos, que contienen grandes funcionalidades en empaques cada vez más pequeños.</p>
<p>Cada vez vemos y tenemos a nuestra disposición microcontroladores más y más poderosos. En nuestras épocas de estudiantes, ni nos imaginabamos realizar una transformada FFT en un micro, o conectarlo a un computador via USB o ethernet! esas eran utopías en aquellas épocas del 8051, pero ahora con los nuevos micros de la marca <a href="http://www.microchip.com" target="_blank">Microchip</a>, y los <a href="http://www.arduino.cc/es/" target="_blank">Arduinos</a>, la cosa se va haciendo cada vez más sencilla, en cuando a proyectos de electrónica se refiere .</p>
<p>Pero mirando un poco más allá (y con la ayuda de la producción en masa), encontramos un producto más elaborado. El esperado <a href="http://www.raspberrypi.org/" target="_blank">Raspberry Pi</a>, que tiene memoria ram y almacenamiento suficiente, para cargar una distribución de linux completa (incluida la interfaz gráfica). A esto súmale puertos USB, conexión ethernet de 100Mbps, audio y salida RCA para TV, y tendrás un computador de escritorio, que podría funcionar tranquilamente como un terminal de navegación de internet, o para escribir uno que otro texto. Imagínate el primer Pentium 4 que tuviste (de esos de 1Ghz de velocidad), pero que cabe en tu bolsillo, y lo más importante, no hará un hueco en tu billetera.</p>
<p><a href="http://patolin.com/files/2012/01/Raspi-Model-AB-Mono-1-699x1024.png"><img class="aligncenter size-medium wp-image-245" title="Raspi-Model-AB-Mono-1-699x1024" src="http://patolin.com/files/2012/01/Raspi-Model-AB-Mono-1-699x1024-204x300.png" alt="" width="204" height="300" /></a></p>
<p>&nbsp;</p>
<p>Que usos le daríamos a un bichito de estos? Pues veamos</p>
<p><strong>Navegación en internet:</strong> al tener red ethernet, y si corre Fedora Linux, podemos instalar chrome, y webear un rato, todo esto conectado a nuestra tele LCD usando el conector de video HDMI que viene soldado, en resumen, conviertes a tu tele LCD en un smart-tv sin liquidar el cupo de tu tarjeta de crédito</p>
<p>&nbsp;</p>
<p><strong>Computador de escritorio:</strong> En estos agitados días de la computación, donde nuestro teléfono celular es más potente que la pc que usamos para Word y Excel, el raspberry podría tranquilamente ser utilizado como herramienta de procesamiento de textos y hoja electrónica, ya sea usando algunos de los programas GNU disponibles, o las herramientas de google en línea.</p>
<p>&nbsp;</p>
<p><strong>Video Streaming:</strong> Cada día se vuelven más comunes los discos NAS (o discos duros de red), desde donde podríamos leer nuestras películas o videos favoritos, y reproducirlos en nuestra LCD, y si cumplen las especificaciones, hasta video HD podríamos reproducir, sin desperdiciar energía, ya que este computador, funciona con 4 baterías AA.</p>
<p>&nbsp;</p>
<p><strong>Electrónica Geek:</strong> Imagina este escenario. La alarma de nuestra casa, con todos sus sensores, y un par de webcams, conectadas a un servidor web que nos mantiene al tanto 24/7 de la información de los mismos. Que mayor tranquilidad que la de tomar nuestro buen smartphone, digitar la url de nuestra casa, y ver que todo está tranquilo mientras estamos fuera. Por $25 lo podemos hacer!!, simplemente conectamos todo al raspberry (usando el buen netduino, que revisaremos próximamente), y al ejecutar Linux, podemos usar apache, y montar nuestro propio servidor web, que consume menos que un reproductor de DVD en modo de stand by.</p>
<p><a href="http://patolin.com/files/2012/01/PC236526-1024x768.jpg"><img class="aligncenter size-medium wp-image-246" title="Raspberry Pi" src="http://patolin.com/files/2012/01/PC236526-1024x768-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>No se ustedes que piensan, pero yo me apunto a uno. Estos microcomputadores tendrán un gran futuro en nuestra electrónica casera, ya que son baratos y altamente hackeables; se pueden adaptar a nuestras necesidades más descabelladas.</p>
<p>Por si les queda alguna duda, les dejo este  videito, del cásico Quake III, corriendo en una de estas placas.</p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/e_mDuJuvZjI?feature=player_embedded" frameborder="0" allowfullscreen></iframe></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://patolin.com/blog/2012/01/03/un-computador-por-25-quizas-el-2012-sea-el-ano-donde-lo-veamos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Electrónica Troll?</title>
		<link>http://patolin.com/blog/2012/01/03/electronica-troll/</link>
		<comments>http://patolin.com/blog/2012/01/03/electronica-troll/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 03:16:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://patolin.com/?p=240</guid>
		<description><![CDATA[Un pequeño video, que dejará mas preguntas que respuestas, empezando por el clásico &#8220;como mi#%$a lo hizo!!&#8221;. Desafiando toda la ley de ohm, les dejo el video de un simple circuito serie, de 3 leds, y 3 interruptores. &#160;]]></description>
			<content:encoded><![CDATA[<p>Un pequeño video, que dejará mas preguntas que respuestas, empezando por el clásico &#8220;como mi#%$a lo hizo!!&#8221;. Desafiando toda la <a href="http://es.wikipedia.org/wiki/Ley_de_Ohm">ley de ohm</a>, les dejo el video de un simple circuito serie, de 3 leds, y 3 interruptores.</p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/RkTvDjhImwo?feature=player_embedded" frameborder="0" allowfullscreen></iframe></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://patolin.com/blog/2012/01/03/electronica-troll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

