<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Code &#38; Beers</title>
	<atom:link href="http://eugeniofage.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://eugeniofage.wordpress.com</link>
	<description>Al fin tengo un blog!!!</description>
	<lastBuildDate>Sat, 28 May 2011 15:50:19 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='eugeniofage.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Code &#38; Beers</title>
		<link>http://eugeniofage.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://eugeniofage.wordpress.com/osd.xml" title="Code &#38; Beers" />
	<atom:link rel='hub' href='http://eugeniofage.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Leccion aprendida instalar sphinx en ubuntu</title>
		<link>http://eugeniofage.wordpress.com/2011/05/29/leccion-aprendida-instalar-sphinx-en-ubuntu/</link>
		<comments>http://eugeniofage.wordpress.com/2011/05/29/leccion-aprendida-instalar-sphinx-en-ubuntu/#comments</comments>
		<pubDate>Sat, 28 May 2011 15:48:50 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=115</guid>
		<description><![CDATA[Hola, escribo esto no solo paraque otros no caigan en el mismo error, si no que tambien para que yo no vuelva a cometerlo. Instalar sphinx search en ubuntu puede ser tan facil como escribir; sudo apt-get install sphinxsearch Pero &#8230; <a href="http://eugeniofage.wordpress.com/2011/05/29/leccion-aprendida-instalar-sphinx-en-ubuntu/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=115&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hola, escribo esto no solo paraque otros no caigan en el mismo error, si no que tambien para que yo no vuelva a cometerlo.</p>
<p>Instalar sphinx search en ubuntu puede ser tan facil como escribir;<br />
<code>sudo apt-get install sphinxsearch</code></p>
<p>Pero si queremos usar sphinx con el stemmer haciendo mas potentes nuestras busquedas el camino es cuesta arriba&#8230;</p>
<p>1) descarga y extrae la version estable de sphinx;<br />
<code>wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz<br />
tar xzf sphinx-0.9.9.tar.gz<br />
</code></p>
<p>2) instalemos las porqueris para usar mysql<br />
<code>sudo apt-get update<br />
sudo apt-get dist-upgrade<br />
sudo apt-get install build-essential<br />
sudo apt-get install libmysqlclient15-dev<br />
</code></p>
<p>3) instalemos el stemmer<br />
cd sphinx-0.9.9/<br />
wget http://snowball.tartarus.org/dist/libstemmer_c.tgz<br />
tar xzf libstemmer_c.tgz</p>
<p>4) instalemos todo, como veran yo lo instale en /usr/local/sphinx ustedes pueden instalarlo donde se les cante<br />
<code>./configure  --prefix=/var/sphinx --with-libstemmer --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql<br />
make<br />
sudo make install</code></p>
<p>Luego tienen que crear el archivo de configuracion de sphinx y todo lo demas que ya deberian saber hacer.</p>
<p>Creando los indice.<br />
/path/instalacion/indexer &#8211;all -c /path/de/configuracion/sphinx.conf</p>
<p>Luego tenes que cargar el demonio<br />
/path/instalacion/searchd /path/de/configuracion/sphinx.conf</p>
<p>OJO! yo como un boludo en vez de searchd puse search, que es el binario para realizar busquedas, constantemente me tiraba error y pense que me habia mandado una cagada con el archivo de configuracion.</p>
<p>Bueno ahi lo tienen, facil no?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eugeniofage.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eugeniofage.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eugeniofage.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eugeniofage.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=115&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2011/05/29/leccion-aprendida-instalar-sphinx-en-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
		<item>
		<title>crea un sistema de frases para facebook</title>
		<link>http://eugeniofage.wordpress.com/2011/02/25/crea-un-sistema-de-frases-para-facebook/</link>
		<comments>http://eugeniofage.wordpress.com/2011/02/25/crea-un-sistema-de-frases-para-facebook/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 23:34:16 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[cakePHP]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=112</guid>
		<description><![CDATA[Hola, antes que nada lamento no escribir tan seguido&#8230; He pasado un fin de semana en casa aburrido y se me ocurrio crear uno de esos populares sistemitas para poner frases en tu facebook, pueden descargarlo desde aqui; http://www.mediafire.com/?ctjst16e221y53x Pruebenlo &#8230; <a href="http://eugeniofage.wordpress.com/2011/02/25/crea-un-sistema-de-frases-para-facebook/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=112&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hola, antes que nada lamento no escribir tan seguido&#8230;</p>
<p>He pasado un fin de semana en casa aburrido y se me ocurrio crear uno de esos populares sistemitas para poner frases en tu facebook, pueden descargarlo desde aqui;</p>
<p><a href="http://www.mediafire.com/?ctjst16e221y53x">http://www.mediafire.com/?ctjst16e221y53x</a></p>
<p>Pruebenlo y despues me cuentan!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eugeniofage.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eugeniofage.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eugeniofage.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eugeniofage.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=112&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2011/02/25/crea-un-sistema-de-frases-para-facebook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
		<item>
		<title>adios gastromap&#8230; hola ladralo.com</title>
		<link>http://eugeniofage.wordpress.com/2010/09/21/adios-gastromap-hola-ladralo-com/</link>
		<comments>http://eugeniofage.wordpress.com/2010/09/21/adios-gastromap-hola-ladralo-com/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 14:28:11 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=109</guid>
		<description><![CDATA[Luego de algun tiempo he decidido desistir con gastromap.com.ar , menos de 5 visitas diarias y un consumo altisimo de recusos de cpu no son viables&#8230; Hola ladralo.com, usando al script monkylinks !!!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=109&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Luego de algun tiempo he decidido desistir con gastromap.com.ar , menos de 5 visitas diarias y un consumo altisimo de recusos de cpu no son viables&#8230; </p>
<p>Hola <a href="http://ladralo.com">ladralo.com</a>, usando al script <a href="http://code.google.com/p/monky/">monkylinks</a> !!!</p>
<p> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eugeniofage.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eugeniofage.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eugeniofage.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eugeniofage.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=109&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2010/09/21/adios-gastromap-hola-ladralo-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
		<item>
		<title>sql: joins vs multiple selects</title>
		<link>http://eugeniofage.wordpress.com/2010/09/01/sql-joins-vs-multiple-selects/</link>
		<comments>http://eugeniofage.wordpress.com/2010/09/01/sql-joins-vs-multiple-selects/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 13:13:58 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[meneame]]></category>
		<category><![CDATA[optimizacion]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=98</guid>
		<description><![CDATA[Pese a que el saber popular dice que hacer un select multiple*(1) versus un select con joins*(2) es mas lento. *(1) SELECT link_id,sum(vote_value) FROM links,votes WHERE link_id=vote_link_id AND vote_type=&#8217;links&#8217; AND vote_value&#62;0 AND link_date &#62; DATE_SUB(NOW(), INTERVAL 1 year) GROUP BY &#8230; <a href="http://eugeniofage.wordpress.com/2010/09/01/sql-joins-vs-multiple-selects/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=98&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Pese a que el saber popular dice que hacer un select multiple*(1) versus un select con joins*(2) es mas lento. </p>
<p>*(1) SELECT link_id,sum(vote_value) FROM links,votes WHERE link_id=vote_link_id AND vote_type=&#8217;links&#8217; AND vote_value&gt;0 AND link_date &gt; DATE_SUB(NOW(), INTERVAL 1 year) GROUP BY link_id<br />
*(2) SELECT link_id,sum(vote_value) FROM links INNER JOIN votes ON (link_id=vote_link_id AND vote_type=&#8217;links&#8217; AND vote_value&gt;0) WHERE link_date &gt; DATE_SUB(NOW(), INTERVAL 1 year) GROUP BY link_id</p>
<p>Para sacarme la duda cree<a href="http://www.mediafire.com/?sreeq6ofv6y6t2a"> una script que crea usuarios, enlaces, comentarios y votos (positivos y negativos) en meneame</a>.</p>
<p>Luego tome las diferentes queries que usaban multiples tablas para el calculo del karma (el archivo /scripts/karma9.php) y las compare con las joins, en todas las consultas agregue el prefijo SQL_NO_CACHE</p>
<p><a href='http://eugeniofage.files.wordpress.com/2010/09/testresult.pdf'>El resultado final</a> contra todo lo que esperaba fue no concluyente&#8230;<br />
Seletcs multiples total took: 587<br />
Selects joins total took: 600</p>
<p>Como no me gusta rendirme facilmente elimine todos los indices y corri de nuevo los test. <a href='http://eugeniofage.files.wordpress.com/2010/09/testresult2.pdf'>Obteniendo el siguiente resultado</a>;<br />
Seletcs multiples total took: 118023<br />
Selects joins total took: 117221</p>
<p>A tener en cuenta, las consultas siempre fueron hechas entre dos tablas, si fueran de mas tablas segun la documentacion de sql: <a href="http://dev.mysql.com/doc/refman/5.0/en/nested-join-optimization.html">nested joins</a></p>
<p><strong>Conclusion</strong><br />
Como conclusion podemos afirmar que los indices vamos a lograr consultas muy rapidas, pero esto se paga, los inserts, deletes y updates de una campo indice van a ser mas lentos, debido a que los indices deben ser regenerados. Tambien se paga con espacio ya que los indices ocupan memoria. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eugeniofage.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eugeniofage.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eugeniofage.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eugeniofage.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=98&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2010/09/01/sql-joins-vs-multiple-selects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
		<item>
		<title>cakephp y los campos de tipo enum</title>
		<link>http://eugeniofage.wordpress.com/2010/08/26/cakephp-y-los-campos-de-tipo-enum/</link>
		<comments>http://eugeniofage.wordpress.com/2010/08/26/cakephp-y-los-campos-de-tipo-enum/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 19:55:13 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[enum]]></category>
		<category><![CDATA[fixture]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=94</guid>
		<description><![CDATA[Actualmente como sabran cakephp no soporta los campos del tipo enum, por que al importar los fixtures en los tests podemos encontrarnos con algunos problemas. Cree un simple patch para que transforme el enum a un campo de texto, voy &#8230; <a href="http://eugeniofage.wordpress.com/2010/08/26/cakephp-y-los-campos-de-tipo-enum/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=94&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Actualmente como sabran cakephp no soporta los campos del tipo enum, por que al importar los fixtures en los tests podemos encontrarnos con algunos problemas.</p>
<p>Cree un simple patch para que transforme el enum a un campo de texto, voy abrir <a href="http://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/1049-enum-support-patch-for-testing">un ticket a ver si lo pueden agregar al datasources dbo</a>.</p>
<p>Mientras tanto si alguno de tus modelos usa campos enum puedes agregar lo siguiente en el fixture;</p>
<p><pre class="brush: php;">
class ModelnameFixture extends CakeTestFixture {
	function create(&amp;$db) {
		// enum support in test fixture, by Eugenio Fage
		foreach ($this-&gt;fields as $field) {
			if(substr($field['type'],0,4)=='enum') $db-&gt;columns[$field['type']] = $db-&gt;columns['string'];
		}

		return parent::create($db);
	}
}
</pre></p>
<p>Saludos!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eugeniofage.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eugeniofage.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eugeniofage.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eugeniofage.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/94/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=94&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2010/08/26/cakephp-y-los-campos-de-tipo-enum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
		<item>
		<title>megusta / fblike script</title>
		<link>http://eugeniofage.wordpress.com/2010/08/24/megusta-fblike-script/</link>
		<comments>http://eugeniofage.wordpress.com/2010/08/24/megusta-fblike-script/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 20:18:34 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[me gusta]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=81</guid>
		<description><![CDATA[EL REPOSITORIO HA SIDO CAMBIADO, PUEDES DESCARGAR LA NUEVA VERSION DESDE AQUI http://www.mediafire.com/?ctjst16e221y53x Desarrolle una pequeña script para script para crear frases en facebook, pueden descargarla desde; http://code.google.com/p/fblike/ Pueden ver una pequeña demostracion aqui Que es? Fblike es una simple &#8230; <a href="http://eugeniofage.wordpress.com/2010/08/24/megusta-fblike-script/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=81&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1 style="color:red;">EL REPOSITORIO HA SIDO CAMBIADO, PUEDES DESCARGAR LA NUEVA VERSION DESDE AQUI <a href="http://www.mediafire.com/?ctjst16e221y53x">http://www.mediafire.com/?ctjst16e221y53x</a> </h1>
<p>Desarrolle una pequeña script para script para crear frases en facebook, pueden descargarla desde;<br />
<a href="http://code.google.com/p/fblike/">http://code.google.com/p/fblike/</a></p>
<p>Pueden ver una pequeña <a href="http://frases.larompe.com.ar">demostracion aqui</a></p>
<blockquote>
<h1><a name="Que_es?"></a>Que es?</h1>
<p>Fblike es una simple script para que los usuarios de facebook puedan crear frases y compartirlas con sus amigos. Puedes ver una demo del sistema en;</p>
<ul>
<li><a rel="nofollow" href="http://frases.larompe.com.ar">http://frases.larompe.com.ar</a></li>
<li><a rel="nofollow" href="http://apps.facebook.com/frasesfan/">http://apps.facebook.com/frasesfan/</a></li>
</ul>
<h2><a name="Inspiracion"></a>Inspiracion<a class="section_anchor" href="#Inspiracion">¶</a></h2>
<p>fblike fue inspirado en base a estos sitios;</p>
<ul>
<li><a rel="nofollow" href="http://www.facebookmegusta.com/">http://www.facebookmegusta.com/</a></li>
<li><a rel="nofollow" href="http://megusta.megustaelfb.com/">http://megusta.megustaelfb.com/</a></li>
<li><a rel="nofollow" href="http://www.fblike.com/">http://www.fblike.com/</a></li>
<li><a rel="nofollow" href="http://fblike.net/">http://fblike.net/</a></li>
<li><a rel="nofollow" href="http://www.frasesfacebook.net/">http://www.frasesfacebook.net/</a></li>
</ul>
<h2><a name="Como_instalar_fblike"></a>Como instalar fblike</h2>
<ol>
<li>crea la base de datos y la tabla, las sentencias sql para crear las tablas se encuentran en base.sql</li>
<li>configura los datos para conectarte a la base de datos en app/config/database.php</li>
<li>crea una aplicacion en facebook <a rel="nofollow" href="http://developers.facebook.com/setup/">http://developers.facebook.com/setup/</a>
<ul>
<li>ingresa a la configuracion de la aplicacion que recien creaste</li>
<li>ve a la pestaña que dice Facebook integration</li>
<li>elige una direccion dentro de facebook (opcion Página de trabajo)</li>
<li>en canvas URL escribe direccion_donde_esta_fblike/fbapp</li>
<li>en canvas type seleccion iframe</li>
</ul>
</li>
<li>configura los datos para usar la facebook app en app/config/fb-config.php</li>
<li>una vez que la probaste y funciona no olvides ponerlo en modo de produccion, para ello vea a app/config/core.php busca 	Configure::write(&#8216;debug&#8217;, 3); y cambialo por 	Configure::write(&#8216;debug&#8217;, 0);</li>
</ol>
<h2><a name="DESCARGAR"></a>DESCARGAR</h2>
<p><a rel="nofollow" href="http://code.google.com/p/fblike/downloads/detail?name=fblike.zip">http://code.google.com/p/fblike/downloads/detail?name=fblike.zip</a></p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eugeniofage.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eugeniofage.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eugeniofage.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eugeniofage.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=81&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2010/08/24/megusta-fblike-script/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
		<item>
		<title>cacheando queries de forma facil</title>
		<link>http://eugeniofage.wordpress.com/2010/08/24/cacheando-queries-de-forma-facil/</link>
		<comments>http://eugeniofage.wordpress.com/2010/08/24/cacheando-queries-de-forma-facil/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 17:17:21 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[app_model]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[query]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=78</guid>
		<description><![CDATA[Idea original tomada de: http://www.endyourif.com/caching-queries-in-cakephp/ Una optimizacion comun es cachear queries&#8230; navegando por ahi me encontre con un articulo donde simplemente reescriben el metodo find de los modelos para cachear las queries, lo modifique un poquito y asi quedo; app_model.php &#8230; <a href="http://eugeniofage.wordpress.com/2010/08/24/cacheando-queries-de-forma-facil/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=78&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Idea original tomada de: http://www.endyourif.com/caching-queries-in-cakephp/</p>
<p>Una optimizacion comun es cachear queries&#8230; navegando por ahi me encontre con un articulo donde simplemente reescriben el metodo find de los modelos para cachear las queries, lo modifique un poquito y asi quedo;</p>
<p>app_model.php</p>
<p><pre class="brush: php;">
class AppModel extends Model {
	/**
	 * 
	 * Cache find queries
	 */ 
    function find($conditions = null, $fields = array(), $order = null, $recursive = null) {
    	if (!empty($fields['cacheKey'])) {
    		$cacheConfig = 'query';
			if (!empty($fields['cacheConfig'])){
      			$cacheConfig = $fields['cacheConfig'];
    		}
    		
    		$cacheName = $this-&gt;name . '-' . $fields['cacheKey'];
			
    		if (($data = Cache::read($cacheName, $cacheConfig)) === false) {
				$data = parent::find($conditions, $fields, $order, $recursive);
				Cache::write($cacheName, $data, $cacheConfig);
			}
    	}else{
    		$data = parent::find($conditions, $fields, $order, $recursive);
    	}
    	
    	return $data;
    }
}
</pre></p>
<p>Como veran por defecto usa la configuracion de cache llamada &#8216;query&#8217;, asi que vamos a tener que agregar esto en;</p>
<p>config/core.php</p>
<pre>Cache::config('query', array(
 'engine' =&gt; 'File',
 'duration'=&gt; '+20 minutes',
 'probability'=&gt; 100,
 'path' =&gt; CACHE . 'queries' . DS,
 ));
</pre>
<p>Ademas tendremos que crear en el directorio de cache el directorio queries, alli se salvaran todas las queries, si en vez de usar el file engine podemos cambiarlo por memcache tocando la configuracion (lo que recien escribimos en core.php).</p>
<h3>USO</h3>
<p>Cuando queremos cachear un find solo agregamos lo siguiente al array options;</p>
<pre>$this-&gt;Modelo-&gt;find('all',array('cacheKey'=&gt;'llave','conditions'=&gt;2));
$this-&gt;Modelo-&gt;find('all',array('cacheKey'=&gt;'llave','cacheConfig'=&gt;'memcached','conditions'=&gt;2));
</pre>
<p>PAZ!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eugeniofage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eugeniofage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eugeniofage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eugeniofage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=78&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2010/08/24/cacheando-queries-de-forma-facil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
		<item>
		<title>Analisis de codigo PHP</title>
		<link>http://eugeniofage.wordpress.com/2010/08/23/analisis-de-codigo-php/</link>
		<comments>http://eugeniofage.wordpress.com/2010/08/23/analisis-de-codigo-php/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 17:07:14 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[analisis]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[metrica]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=71</guid>
		<description><![CDATA[Hoy navegando me tope con algunas herramientas interesantes para analizar codigo. Codigo duplicado La primer herramienta con la que me tope es phpcpd, basicamente busca codigo duplicado, por ejemplo: test.php &#60;? class Test{ function suma1($x,$y){ return $x+$y; } function suma2($a,$b){ &#8230; <a href="http://eugeniofage.wordpress.com/2010/08/23/analisis-de-codigo-php/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=71&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hoy navegando me tope con algunas herramientas interesantes para analizar codigo.</p>
<h3><strong>Codigo duplicado</strong></h3>
<p>La primer herramienta con la que me tope es <a href="http://github.com/sebastianbergmann/phpcpd"><strong>phpcpd</strong></a>, basicamente busca codigo duplicado, por ejemplo:</p>
<p>test.php</p>
<pre>&lt;?
class Test{
  function suma1($x,$y){ return $x+$y; }
  function suma2($a,$b){ return $a + $b; }
  function suma3($a,$b){ return $b+$a; }
}
function suma1($x,$y){ return $x+$y; }
function suma2($a,$b){ return $a + $b; }
function suma3($a,$b){ return $b+$a; }
</pre>
<pre>eugenio@eugenio-desktop:/var/www$ phpcpd test.php
phpcpd 1.3.1 by Sebastian Bergmann.
0.00% duplicated lines out of 9 total lines of code.</pre>
<p>WTF??? al parecer no es muy inteligente, para que funcione el codigo debe ser un copy &amp; paste exacto de el codigo.</p>
<pre>eugenio@eugenio-desktop:/var/www$ phpcpd ./wordpress/
phpcpd 1.3.1 by Sebastian Bergmann.
Found 27 exact clones with 472 duplicated lines in 7 files:
 - wp-includes/class-simplepie.php:2512-2520
 wp-includes/class-simplepie.php:3414-3422
...
 - wp-content/plugins/akismet/akismet.php:837-851
 wp-content/plugins/akismet/akismet.php:904-918
0.30% duplicated lines out of 157906 total lines of code.
</pre>
<p>A partir de esta herramienta encontre otras un poco mas complejas y inteligentes;</p>
<p><a href="http://pear.php.net/PHP_CodeSniffer">phpcs</a>, <a href="http://pdepend.org/">pdepend</a> y <a href="http://phpmd.org/">phpmd</a></p>
<h3><a href="http://pear.php.net/manual/en/package.php.php-codesniffer.php">phpcs</a></h3>
<p>PHP_CodeSniffer es una script PHP5 que &#8220;sniffea&#8221; archivos PHP,  JavaScript y CSS para detectar violaciones de un standard de codigo definido.</p>
<p>Esta herramienta nos indicara cuando no se siga el standard definido, dentro de la documentacion de phpcs en pear nos indican como hacer para definir un standard propio para cambiar el que viene por defecto.</p>
<p>Muestra de uso;</p>
<pre>eugenio@eugenio-desktop:/var/www$ phpcs  ./test.php
FILE: /var/www/test.php
--------------------------------------------------------------------------------
FOUND 25 ERROR(S) AND 0 WARNING(S) AFFECTING 8 LINE(S)
--------------------------------------------------------------------------------
 1 | ERROR | Short PHP opening tag used. Found "&lt;?" Expected "&lt;?php".
 1 | ERROR | Missing file doc comment
 2 | ERROR | Missing class doc comment
 2 | ERROR | Opening brace of a class must be on the line after the definition
 3 | ERROR | Line indented incorrectly; expected 4 spaces, found 2
 3 | ERROR | Missing function doc comment
 3 | ERROR | Opening brace should be on a new line
 3 | ERROR | Closing brace must be on a line by itself
 4 | ERROR | Line indented incorrectly; expected 4 spaces, found 2
 4 | ERROR | Missing function doc comment
 4 | ERROR | Opening brace should be on a new line
 4 | ERROR | Closing brace must be on a line by itself
 5 | ERROR | Line indented incorrectly; expected 4 spaces, found 2
 5 | ERROR | Missing function doc comment
 5 | ERROR | Opening brace should be on a new line
 5 | ERROR | Closing brace must be on a line by itself
 7 | ERROR | Missing function doc comment
 7 | ERROR | Opening brace should be on a new line
 7 | ERROR | Closing brace must be on a line by itself
 8 | ERROR | Missing function doc comment
 8 | ERROR | Opening brace should be on a new line
 8 | ERROR | Closing brace must be on a line by itself
 9 | ERROR | Missing function doc comment
 9 | ERROR | Opening brace should be on a new line
 9 | ERROR | Closing brace must be on a line by itself
-----------------------------------------------------------------
</pre>
<p>Como veran se queja demasiado&#8230; es muy conveniente crear un standard propio.</p>
<h3><a href="http://pdepend.org/">pdepend</a></h3>
<p>Pdepend realizara un informe sobre la metrica del software, analizara la complejidad de las funciones.</p>
<p>Metrica de software que analizara;<a href="http://pdepend.org/documentation/software-metrics.html#npath-complexity"><br />
Cyclomatic Complexity<br />
</a><a href="http://pdepend.org/documentation/software-metrics.html#coderank">NPath Complexity<br />
</a><a href="http://pdepend.org/documentation/software-metrics.html#lines-of-code">CodeRank<br />
Lines Of Code</a></p>
<h3>Y finalmente el que creo mas interesante <a href="http://phpmd.org/">phpmd</a></h3>
<blockquote><p>What PHPMD does is: It takes a given PHP source code base and look  for several potential problems within that source. These problems can be  things like:</p>
<ul>
<li>Possible bugs</li>
<li>Suboptimal code</li>
<li>Overcomplicated expressions</li>
<li>Unused parameters, methods, properties</li>
</ul>
</blockquote>
<pre>eugenio@eugenio-desktop:/var/www$ phpmd test.php text codesize,unusedcode,naming,naming
/var/www/test.php:12    Avoid variables with short names like $x
/var/www/test.php:12    Avoid variables with short names like $y
/var/www/test.php:12    Avoid variables with short names like $x
...
/var/www/test.php:31    Avoid variables with short names like $a
/var/www/test.php:31    Avoid variables with short names like $b
/var/www/test.php:31    Avoid variables with short names like $a
/var/www/test.php:31    Avoid variables with short names like $b</pre>
<p>Analizemos el codigo de worpress&#8230;</p>
<pre>eugenio@eugenio-desktop:/var/www$ time phpmd ./wordpress text codesize,unusedcode,naming,design&gt;wordpress.doc
real	4m1.382s
user	3m56.543s
sys	0m2.624s
</pre>
<p><a href="http://eugeniofage.files.wordpress.com/2010/08/wordpress1.doc">Descargar el informe de analisis al wordpress 3.0.1</a></p>
<pre>eugenio@eugenio-desktop:/var/www$ time phpmd ./meneame4/ text codesize,unusedcode,naming,design&gt;meneame.doc
real    0m42.966s
user    0m39.526s
sys    0m1.064s</pre>
<p><a href="http://eugeniofage.files.wordpress.com/2010/08/meneame.doc">Descargar el informe de analisis al meneame v4</a></p>
<h2>Conclusion</h2>
<p>De todas las herramientas que probe definitivamente me quedo con phpmd, esta herramienta nos alertara de cualquier <a href="http://en.wikipedia.org/wiki/Code_smell">codesmell</a> de manera efectiva</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eugeniofage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eugeniofage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eugeniofage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eugeniofage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=71&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2010/08/23/analisis-de-codigo-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
		<item>
		<title>Monky, un pantallazo</title>
		<link>http://eugeniofage.wordpress.com/2010/08/22/67/</link>
		<comments>http://eugeniofage.wordpress.com/2010/08/22/67/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 00:27:30 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=67</guid>
		<description><![CDATA[Hola, hace cuanto que no escribo&#8230; estoy algo atareado construyendo a monky, un agregador de noticias open source que funciona bajo el framework cakePHP, comenzo siendo algo asi como un refactor de meneame, ahora si bien tomo algunas ideas de &#8230; <a href="http://eugeniofage.wordpress.com/2010/08/22/67/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=67&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hola, hace cuanto que no escribo&#8230; estoy algo atareado construyendo a monky, un agregador de noticias open source que funciona bajo el framework cakePHP, comenzo siendo algo asi como un refactor de meneame, ahora si bien tomo algunas ideas de lo que escribio Ricardo Galli, podria decirse que no es meneame.</p>
<p>Les dejo un pantallazo para que vean como va el trabajo.</p>
<p><a href="http://eugeniofage.files.wordpress.com/2010/08/pantallazo.png"><img class="alignnone size-medium wp-image-68" title="Pantallazo" src="http://eugeniofage.files.wordpress.com/2010/08/pantallazo.png?w=300&#038;h=240" alt="" width="300" height="240" /></a></p>
<p>http://code.google.com/p/monky/</p>
<p>Saludos</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eugeniofage.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eugeniofage.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eugeniofage.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eugeniofage.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=67&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2010/08/22/67/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>

		<media:content url="http://eugeniofage.files.wordpress.com/2010/08/pantallazo.png?w=300" medium="image">
			<media:title type="html">Pantallazo</media:title>
		</media:content>
	</item>
		<item>
		<title>Lograr que cakephp soporte subdominios</title>
		<link>http://eugeniofage.wordpress.com/2010/08/06/lograr-que-cakephp-soporte-subdominios/</link>
		<comments>http://eugeniofage.wordpress.com/2010/08/06/lograr-que-cakephp-soporte-subdominios/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 16:08:47 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[subdominios]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=62</guid>
		<description><![CDATA[Hola a todos, por si algunos no lo sabian cakePHP no es muy bueno a la hora de manejar urls con subdominio, en este post voy a escribir sobre como hacer posible manejar subdominios haciendo la menor cantidad de modificaciones &#8230; <a href="http://eugeniofage.wordpress.com/2010/08/06/lograr-que-cakephp-soporte-subdominios/">Sigue leyendo <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=62&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hola a todos, por si algunos no lo sabian cakePHP no es muy bueno a la hora de manejar urls con subdominio, en este post voy a escribir sobre como hacer posible manejar subdominios haciendo la menor cantidad de modificaciones posibles.</p>
<p>Basicamente la idea es que pase el subdominio por el named parameter subdomain. Todo esto sin tocar el .htaccess</p>
<p>Para esta solucion necesitamos poner unas pocas lineas en el config/bootstrap.php , otras en el config/routes.php (ya que hay que agregar el domain a las rutas), luego agregamos una constante en webroot/index.php y finalmente usar un nuevo htmlhelper para hacer links correctamente que por supuesto extiende de htmlhelper</p>
<h3>Primero:</h3>
<p>En el archivo <strong>config/bootstrap.php</strong> agrega al final:<br />
(Recuerda cambiar test.domain.com por el nombre de tu dominio ejemplo: miweb.com tambien puedes usar un subdominio, es importante que siempre lo escribas en minusculas)</p>
<p><code>// sub domain in lower<br />
define('MYDOMAIN','test.larompe.com.ar');<br />
</code></p>
<p><code>if(!isset($_GET['url']))$_GET['url']='';<br />
</code></p>
<p><code>$token=parse_url($_SERVER['SERVER_NAME']);<br />
if((($pos=strpos($token['path'],MYDOMAIN))&gt;0)){<br />
$subdomain=strtolower(substr($token['path'],0,$pos-1));</code><code><br />
}else{<br />
$subdomain='www'</code><code><br />
}<br />
$_GET['url']=$subdomain.'/'.$_GET['url'];</code></p>
<h3>Segundo</h3>
<p>Vas a tener que modificar las rutas de tu aplicacion, estas se encuentran en <strong>config/routes.php</strong></p>
<p>Ejemplo;</p>
<p>La ruta;<br />
Router::connect(&#8216;/&#8217;, array(&#8216;controller&#8217; =&gt; &#8216;pages&#8217;, &#8216;action&#8217; =&gt; &#8216;display&#8217;, &#8216;home&#8217;));</p>
<p>Pasa a llamarse;<br />
Router::connect(&#8216;/:subdomain/&#8217;, array(&#8216;controller&#8217; =&gt; &#8216;pages&#8217;, &#8216;action&#8217; =&gt; &#8216;display&#8217;, &#8216;home&#8217;),array(&#8216;subdomain&#8217;));</p>
<p>Finalmente tenemos que atrapar los /controller /controller/action;<br />
Router::connect(&#8216;/:subdomain/:controller/:action/*&#8217;, array(&#8216;subdomain&#8217;));<br />
Router::connect(&#8216;/:subdomain/:controller/*&#8217;, array(&#8216;subdomain&#8217;));</p>
<p>Recuerda que por defecto si el subdominio no esta seteado pone www, osea que las rutas para la aplicacion principal es;<br />
Router::connect(&#8216;/www/users/*&#8217;, array(&#8216;controller&#8217;=&gt;&#8217;users&#8217;,'action&#8217;=&gt;&#8217;index&#8217;));</p>
<h3>Tercero</h3>
<p>Agregar la siguiente linea al principio de webroot/index.php</p>
<p>define(&#8216;WEBROOT_DIR&#8217;, &#8216;/&#8217;);</p>
<h3>Cuarto</h3>
<p>Crea el helper HtmlSubdomain, para ello crea el archivo views/helpers/html_subdomain.php</p>
<p><code><br />
&lt;?php<br />
class HtmlSubdomainHelper extends HtmlHelper{<br />
function link($title, $url = null, $options = array(), $confirmMessage = false) {<br />
$escapeTitle = true;<br />
if ($url !== null) {<br />
$url = $this-&gt;url($url);<br />
}<br />
return parent::link($title,$url,$options,$confirmMessage);<br />
}<br />
function url($url=null,$full=false){<br />
if(is_array($url)){<br />
if(!isset($url['subdomain'])) $url['subdomain'] = 'www';<br />
$subdomain=$url['subdomain'];<br />
$url=parent::url($url);<br />
$pos=strpos($url,'/'.$subdomain.'/')+strlen('/'.$subdomain);<br />
$url=substr($url,$pos);<br />
return 'http://'.$subdomain.'.'.MYDOMAIN.$url;<br />
}<br />
return parent::url($url,$full);<br />
}<br />
}</code></p>
<h3>Por ultimo</h3>
<p>Debes recordar agregar el Helper HtmlSubdomain para crear los links en tu vista, ejemplo;</p>
<p>echo $this-&gt;HtmlSubdomain-&gt;link(&#8216;hola&#8217;,array(&#8216;controller&#8217;=&gt;&#8217;pages&#8217;,'view&#8217;=&gt;&#8217;display&#8217;,'home&#8217;,'subdomain&#8217;=&gt;&#8217;subdom1&#8242;);</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eugeniofage.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eugeniofage.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eugeniofage.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eugeniofage.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&amp;blog=2084716&amp;post=62&amp;subd=eugeniofage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2010/08/06/lograr-que-cakephp-soporte-subdominios/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
	</channel>
</rss>
