<?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>PHPizando &#187; PHP</title>
	<atom:link href="http://eugeniofage.wordpress.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://eugeniofage.wordpress.com</link>
	<description>Al fin tengo un blog!!!</description>
	<lastBuildDate>Tue, 04 Nov 2008 13:19:46 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='eugeniofage.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/5a09fe0d07cdef70b7ad3ec842e56383?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>PHPizando &#187; PHP</title>
		<link>http://eugeniofage.wordpress.com</link>
	</image>
			<item>
		<title>Clase Spider para obtener metas y contenido sin html tags de una web</title>
		<link>http://eugeniofage.wordpress.com/2008/08/28/clase-spider-para-obtener-metas-y-contenido-sin-html-tags-de-una-web/</link>
		<comments>http://eugeniofage.wordpress.com/2008/08/28/clase-spider-para-obtener-metas-y-contenido-sin-html-tags-de-una-web/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 14:38:05 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=23</guid>
		<description><![CDATA[Hola, estaba trabajando en un pequeño buscador de sitios webs, y me tope con el problema de que no habia ninguna script por ahi que limpie correctamente una web de los html tags para obtener solo el codigo, los meta y el titulo. Por ello me puse a escribir una clase que haga estas cosas.
Quedaron [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&blog=2084716&post=23&subd=eugeniofage&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hola, estaba trabajando en un pequeño buscador de sitios webs, y me tope con el problema de que no habia ninguna script por ahi que limpie correctamente una web de los html tags para obtener solo el codigo, los meta y el titulo. Por ello me puse a escribir una clase que haga estas cosas.</p>
<p>Quedaron algunas pequeñas funcionalidades por crear, pueden verse en los comentarios de la script, como arreglar acentos y usar fsockopen si no hay libreria curl, tambien algunas funcionalidades un poco mas importantes como obtener todos los alts de las imagenes y obtener todas las links. No obstante creo que funcionara de maravillas para lo que necesito.</p>
<p>Ejemplo de uso;<br />
<code><br />
$webFetch=Spider::getWebFull('http://technorati.com/');<br />
print_r($webFetch);<br />
</code></p>
<pre>
//@author Eugenio Fage
abstract class Spider {
	public function getWebFull($url){
		$htmlCode=self::getWebCode($url);
		if($htmlCode=='') return array();
		$return['title']=self::getTitle($htmlCode);
		$return['metas']=self::getMetas($htmlCode);

		$return['text']=self::justText($htmlCode);

		return $return;
	}

	public function getWebCode($url){
		//@todo si no existen las curl functions usar fsockopen
		$ch = curl_init();

		curl_setopt ($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_USERAGENT, &quot;Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)&quot;);
		$data = curl_exec ($ch);
		curl_close ($ch);

		return $data;
	}

	public function getTitle($html,$charset=null){
		//@todo corregir acentos sin usar multi byte functions
		$arr=array();
		preg_match_all('@(&lt;title&gt;(.*)&lt;/title&gt;)@i',$html,$arr);
		$arr=$arr[2];
		//el titulo no va a ser mas largoque 100 caracteres
		return(substr(strip_tags($arr[0]),0,110));
	}

	public function getMetas($html,$charset=null){
		//@todo corregir acentos sin usar multi byte functions
		$arr=array();
		preg_match_all('@(meta\sname=\&quot;(.*)\&quot;\scontent=\&quot;(.*)\&quot;[ /]*&gt;)@i',$html,$arr);
		$meta=$arr[2];
		$content=$arr[3];
		unset($arr);

		while(($unMeta=array_pop($meta))){
			$metas[strtolower($unMeta)]=array_pop($content);
		}

		while(($unMeta=array_pop($meta))){
			$metas[strtolower($unMeta)]=array_pop($content);
		}

		preg_match_all('@(meta\scontent=\&quot;(.*)\&quot;\sname=\&quot;(.*)\&quot;[ /]*&gt;)@i',$html,$arr);
		$meta=$arr[3];
		$content=$arr[2];
		unset($arr);

		while(($unMeta=array_pop($meta))){
			$metas[strtolower($unMeta)]=array_pop($content);
		}

		return $metas;
	}

	public function justText($html,$charset=null){
		//@todo corregir acentos sin usar multi byte functions
		$html=str_replace('&gt;','&gt; ', $html);

		$buscar=array('@&lt;!--.*?--&gt;@si','@&lt;script[^&gt;]*?&gt;.*?&lt;/script&gt;@si','@&lt;style[^&gt;]*?&gt;.*?&lt;/style&gt;@si');
		$html = preg_replace($buscar, ' ', $html);

		$html = preg_replace('@&lt;.*?&gt;@si', ' ', $html);

		$html=str_replace('&amp;lt;',' ',$html);
		$html=str_replace('&amp;gt;',' ',$html);

		$html=html_entity_decode(strip_tags($html));

		$html=str_replace(array('&lt;','&gt;','&amp;gt;','&amp;lt;',&quot;\t&quot;,chr(13),chr(10),chr(160)),' ',$html);

		while(strpos($html,'  ')!==false){
			$html=str_replace('  ',' ',$html);
		}

		return substr($html,0,1500);
	}

}
</pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eugeniofage.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eugeniofage.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&blog=2084716&post=23&subd=eugeniofage&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2008/08/28/clase-spider-para-obtener-metas-y-contenido-sin-html-tags-de-una-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=identicon" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
		<item>
		<title>Benchmarking de funciones</title>
		<link>http://eugeniofage.wordpress.com/2008/08/01/benchmarking-de-funciones/</link>
		<comments>http://eugeniofage.wordpress.com/2008/08/01/benchmarking-de-funciones/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 19:48:40 +0000</pubDate>
		<dc:creator>eugenio85</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://eugeniofage.wordpress.com/?p=18</guid>
		<description><![CDATA[Hola, en muchos blogs en los que se habla de optimizacion en el codigo php puede leerse que la funcion include es mas rapida que require y que include_once.
Asi mismo tambien se sabe que incluir un archivo con su ruta completa es mas rapido que incluir un archivo sin su ruta correspondiente. A continuacion voy a comentar como se llega a estas conclusiones [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&blog=2084716&post=18&subd=eugeniofage&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hola, en muchos blogs en los que se habla de optimizacion en el codigo php puede leerse que la funcion include es mas rapida que require y que include_once.<br />
Asi mismo tambien se sabe que incluir un archivo con su ruta completa es mas rapido que incluir un archivo sin su ruta correspondiente. A continuacion voy a comentar como se llega a estas conclusiones por medio de una herramienta de benchmark, aunque no es necesario hacer un benchmark para saber todo esto, basta con leer el manual de php y saber algo de sistemas operativos <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>1) Primero les copiare el objeto Benckmark, que es el que voy a usar para los testeo.</p>
<pre>&lt;?php

/**
* Benchmarking for PHP applications
*
* Benchmark class provides an easy way to meassure the performance
* of different parts of your PHP applications. You can get any
* counters as you want in the same page execution, and get the output
* via html output or file.
*
*  LICENCE
*  ========
*	copyright (c) 2000 Patxi Echarte [patxi@eslomas.com]
*
*	This program is free software; you can redistribute it and/or
*	modify it under the terms of the GNU Lesser General Public License
*	version 2.1 as published by the Free Software Foundation.
*
*	This library is distributed in the hope that it will be useful,
*	but WITHOUT ANY WARRANTY; without even the implied warranty of
*	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*	GNU Lesser General Public License for more details at
*	http://www.gnu.org/copyleft/lgpl.html
*
*	You should have received a copy of the GNU General Public License
*	along with this program; if not, write to the Free Software
*	Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*
* @package Benchmark
* @category Benchmarking
* @version $Id: Benchmark.class.php,v 1.2 2005/06/07 $
* @author Patxi Echarte &lt;patxi@eslomas.com&gt;
*/

class Benchmark{
	var $__start_times;  //contendr&#225; los tiempos de inicio para cada contador
	var $__stop_times;
	var $__delta_points;

	/**
	* Constructor
    *
    * @access public
    */
   function Benchmark(){
      $this-&gt;_start_times = array();
      $this-&gt;_stop_times = array();
      $this-&gt;_delta_points = array();
   }

    /**
    * Inicializa un contador interno de benchmarking. Se le puede asignar un nombre
	* espec&#237;fico para llevar diferentes contadores en la misma petici&#243;n
    *
    * @param string $name nombre del contador, por defecto 'default'
    * @access public
    */
	function timingStart ($name = 'default') {
		$this-&gt;_start_times[$name] = explode(' ', microtime());
	}

    /**
    * Detiene un contador de benchmarking.
    *
    * @param string $name nombre del contador, por defecto 'default'
    * @access public
    */
	function timingStop ($name = 'default') {
		$this-&gt;_stop_times[$name] = explode(' ', microtime());
	}

    /**
    * Devuelve el tiempo transcurrido para el contador que se indique, hasta
	* el momento actual si no se ha detenido ya el contador, o hasta el
	* momento en el que se detuvo en contador
    *
    * @param string $name nombre del contador, por defecto 'default'
    * @return int n&#250;mero de milisegundos transcurridos
    * @access public
    */
	function timingCurrent ($name = 'default') {
		if (!isset($this-&gt;_start_times[$name])) {
			return 0;
		}
		if (!isset($this-&gt;_stop_times[$name])) {
			$stop_time = explode(' ', microtime());
		}
		else {
			$stop_time = $this-&gt;_stop_times[$name];
		}
		// do the big numbers first so the small ones aren't lost
		$current = $stop_time[1] - $this-&gt;_start_times[$name][1];
		$current += $stop_time[0] - $this-&gt;_start_times[$name][0];
		return $current;
	}

    /**
    * A&#241;ade un punto intermedio en el contador, de forma que el contador
	* contin&#250;a activo y cuando lo visualicemos obtengamos su informaci&#243;n
	* y la de todos sus puntos intermedios
    *
    * @param string $txt identificador de texto para el punto, por defecto ''
    * @param string $name nombre del contador, por defecto 'default'
    * @access public
    */
	function addDeltaPoint($txt='',$name='default'){
		if(!is_array($this-&gt;_delta_points[$name]))
			$this-&gt;_delta_points[$name] = array();
		$this-&gt;_delta_points[$name][] = array('texto' =&gt; $txt, 'time' =&gt; explode(' ',microtime()));
	}

    /**
    * Devuelve un array con el contenido de todos los puntos intermedios de
	* ejecuci&#243;n del contador que se indique. Su formato es:
	*		array(texto=&gt;nombre del punto, time=&gt; milisegundos).
	* De esta forma obtenemos para un contador lo que le ha costado llegar a cada
	* punto intermedio desde el anterior, teniendo una imagen clara de que tareas
	* han costado m&#225;s y cuales menos.
    *
    * @param string $name nombre del contador, por defecto 'default'
    * @return array con los puntos y los milisegundos que ha costado llegar a ellos
    * @access public
    */
	function getDeltaPoints($name='default'){

		if(!is_array($this-&gt;_delta_points[$name])) return;

		$ini = array($this-&gt;_start_times[$name][0],$this-&gt;_start_times[$name][1]);

		foreach($this-&gt;_delta_points[$name] as $id =&gt; $point){

			$delta = $point['time'][1] - $ini[1];
			$delta += $point['time'][0] - $ini[0];

			$result[] = array(texto =&gt; $point['texto'], 'time' =&gt; $delta);

			$ini = $point['time'];

		}
		return $result;
	}

    /**
    * Devuelve una tabla HTML con el contenido de todos los puntos intermedios
	* para el contador indicado.
    *
    * @param string $name nombre del contador, por defecto 'default'
    * @return string con el contenido de la tabla html
    * @access public
    */
	function getDeltaPointsHtmlTable($name='default'){

		if(!is_array($this-&gt;_delta_points[$name])) return;
		$ini = array($this-&gt;_start_times[$name][0],$this-&gt;_start_times[$name][1]);

		$res = '';
		$res = '&lt;table border=&quot;1&quot;&gt;';

		foreach($this-&gt;_delta_points[$name] as $id =&gt; $point){

			$delta = $point['time'][1] - $ini[1];
			$delta += $point['time'][0] - $ini[0];

			$res .= &quot;&lt;tr&gt;&lt;td&gt;$point[texto]&lt;/td&gt;&lt;td&gt;$delta&lt;/td&gt;&lt;/tr&gt;&quot;;

			$ini = $point['time'];

		}
		$res .= &quot;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Total&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&quot; . $this-&gt;timingCurrent($name) . &quot;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;;

		return $res;
	}

    /**
    * Escribe en el archivo que se indique una nueva l&#237;nea al final del archivo,
	* con el contenido de cada punto intermedio, en forma de incrementos sobre
	* el punto anterior. Cada valor se escribe separado por comas para poder ser
	* leido f&#225;cilmente con CSV
    *
    * @param string $name nombre del contador, por defecto 'default'
    * @param string $file nombre del archivo a escribir, por defecto '/tmp/phpbenchmarck.log'
    * @access public
    */
	function saveDeltaPointsToFile($name='default',$file='/tmp/phpbenchmarck.log'){

		if(!is_array($this-&gt;_delta_points[$name])) return;
		$ini = array($this-&gt;_start_times[$name][0],$this-&gt;_start_times[$name][1]);

		foreach($this-&gt;_delta_points[$name] as $id =&gt; $point){
			 $delta = $point['time'][1] - $ini[1];
			 $delta += $point['time'][0] - $ini[0];

			 $result[] =  number_format($delta,8,&quot;,&quot;,&quot;.&quot;);

			 $ini = $point['time'];
		}
		$line = implode(';',$result);

		//abro el fichero y escribo la l&#237;nea con LOCK!!!
		$fp = @fopen($file, 'a');
		@flock($fp, LOCK_EX);
		@fputs($fp,$line.&quot;\n&quot;);
		@flock($fp, LOCK_UN);
	}
}
?&gt;</pre>
<p>2) Bien, ahora voy a crear una carpeta llamada includes, donde voy a meter archivos del tipo unNumero.php, y cada archivo contendra 3 asignaciones y una operacion de suma.<br />
Yo voy a meter uno 100 archivos, con la siguiente scritp, ustedes en sus casa pueden usar el bloc de notas, jajaja</p>
<pre>for ($i=0;$i&lt;99;$i++){
	$caracteres=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o');
	shuffle($caracteres);
	$var1='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);
	$var2='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);
	$var3='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);

	$out='&lt;? '.$var1.'='.rand().'; '.$var2.'='.rand().'; '.$var3.'='.$var1.'+'.$var2.'; ?&gt;';

	$file=fopen('includes/'.$i.'.php','w');
	fwrite($file,$out);
	fclose($file);
}</pre>
<p>3) Testeando el tiempo de respuesta, ahora necesitamos crear 3 archivos;<br />
require.php: este se encargara de usar la funcion require</p>
<pre>&lt;?php
include('Benchmark.class.php');
$bench=new Benchmark();

$bench-&gt;timingStart('test');
escribir();
$mInicio=memory_get_usage();
for ($i=0;$i&lt;99;$i++){
	require('includes/'.$i.'.php');
}
$mFin=memory_get_usage();
$bench-&gt;addDeltaPoint('fin de test require', 'test');
echo 'requiere uso: '.($mFin-$mInicio).' bytes&lt;br&gt;';
$bench-&gt;saveDeltaPointsToFile('test','require.log');
$bench-&gt;timingStop();

function escribir(){
   for ($i=0;$i&lt;99;$i++){
	$caracteres=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o');
	shuffle($caracteres);
	$var1='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);
	$var2='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);
	$var3='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);

	$out='&lt;? '.$var1.'='.rand().'; '.$var2.'='.rand().'; '.$var3.'='.$var1.'+'.$var2.'; ?&gt;';

	$file=fopen('includes/'.$i.'.php','w');
	fwrite($file,$out);
	fclose($file);
   }
}
?&gt;</pre>
<p>Luego el archivo inlcude_once.php que testeara la funcion include_once;</p>
<pre>&lt;?php
include('Benchmark.class.php');
$bench=new Benchmark();

$bench-&gt;timingStart('test');
escribir();
$mInicio=memory_get_usage();
for ($i=0;$i&lt;99;$i++){
	include_once('includes/'.$i.'.php');
}
$mFin=memory_get_usage();
$bench-&gt;addDeltaPoint('fin de test include_once', 'test');
echo 'include_once uso: '.($mFin-$mInicio).' bytes&lt;br&gt;';
$bench-&gt;saveDeltaPointsToFile('test','include_once.log');
$bench-&gt;timingStop();

function escribir(){
   for ($i=0;$i&lt;99;$i++){
	$caracteres=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o');
	shuffle($caracteres);
	$var1='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);
	$var2='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);
	$var3='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);

	$out='&lt;? '.$var1.'='.rand().'; '.$var2.'='.rand().'; '.$var3.'='.$var1.'+'.$var2.'; ?&gt;';

	$file=fopen('includes/'.$i.'.php','w');
	fwrite($file,$out);
	fclose($file);
   }
}
?&gt;</pre>
<p>Y por ultimo include.php que testeara la funcion include;</p>
<pre>&lt;?php
include('Benchmark.class.php');
$bench=new Benchmark();

$bench-&gt;timingStart('test');
escribir();
$mInicio=memory_get_usage();
for ($i=0;$i&lt;99;$i++){
	include('includes/'.$i.'.php');
}
$mFin=memory_get_usage();
$bench-&gt;addDeltaPoint('fin de test include', 'test');
echo 'include uso: '.($mFin-$mInicio).' bytes&lt;br&gt;';
$bench-&gt;saveDeltaPointsToFile('test','include.log');
$bench-&gt;timingStop();

function escribir(){
   for ($i=0;$i&lt;99;$i++){
	$caracteres=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o');
	shuffle($caracteres);
	$var1='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);
	$var2='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);
	$var3='$'.array_shift($caracteres).array_shift($caracteres).array_shift($caracteres);

	$out='&lt;? '.$var1.'='.rand().'; '.$var2.'='.rand().'; '.$var3.'='.$var1.'+'.$var2.'; ?&gt;';

	$file=fopen('includes/'.$i.'.php','w');
	fwrite($file,$out);
	fclose($file);
   }
}
?&gt;</pre>
<p>Bien, espero que hagan las pruebas y veran que el include es el mas rapido y menos costoso, ademas si agregamos la ruta completa, cosa que yo no hice en los ejemplos, veran que el tiempo de carga es todavia menor.</p>
<p>Saludos, Eugenio</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eugeniofage.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eugeniofage.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eugeniofage.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eugeniofage.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eugeniofage.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eugeniofage.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eugeniofage.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eugeniofage.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eugeniofage.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eugeniofage.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eugeniofage.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eugeniofage.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eugeniofage.wordpress.com&blog=2084716&post=18&subd=eugeniofage&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://eugeniofage.wordpress.com/2008/08/01/benchmarking-de-funciones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a79f4cdf07cb47ec8671d7424dc9a97d?s=96&#38;d=identicon" medium="image">
			<media:title type="html">eugenio85</media:title>
		</media:content>
	</item>
	</channel>
</rss>