<?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>Desarrollo web &#187; php</title>
	<atom:link href="http://www.proyecto-f.net/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.proyecto-f.net</link>
	<description>javascript, jquery, css, php y adobe premiere</description>
	<lastBuildDate>Tue, 13 Apr 2010 05:32:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Parseando HTML con PHP, ejemplo real</title>
		<link>http://www.proyecto-f.net/2010/03/parseando-html-con-php-ejemplo-real/</link>
		<comments>http://www.proyecto-f.net/2010/03/parseando-html-con-php-ejemplo-real/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 02:37:07 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1901</guid>
		<description><![CDATA[Los artículos sobre programación que escribo podrían dividirse en dos grupos: 

Artículos sobre librerías que me gustan y uso habitualmente
Artículos sobre librerías que aún no he usado pero me gustaría probar en próximos proyectos que den pie a ello

Así pues, de cuando en cuando me convierto en un lector más del blog en busca de [...]]]></description>
			<content:encoded><![CDATA[<p>Los artículos sobre programación que escribo podrían dividirse en dos grupos: </p>
<ol>
<li>Artículos sobre librerías que me gustan y uso habitualmente</li>
<li>Artículos sobre librerías que aún no he usado pero me gustaría probar en próximos proyectos que den pie a ello</li>
</ol>
<p>Así pues, de cuando en cuando me convierto en un lector más del blog en busca de esos artículos sobre los que escribí tiempo atrás y necesito ahora. Esta vez se trataba de <em><a href="http://www.proyecto-f.net/2009/12/parsear-html-con-php/">PHP Simple HTML DOM Parser</a></em>.</p>
<p><strong>Poniéndonos en contexto:</strong><br />
Una de las web que he iniciado recientemente trata sobre <a href="http://www.metal-mind.com/">metal alternativo</a> y <a href="http://www.myspace.com/">myspace</a> se ha convertido en un herramienta imprescindible a la hora de buscar noticias y fechas de conciertos. Para el tema de las noticias no había problema, el mismo myspace organiza bastante bien las noticias de los grupos de los que eres &#8220;amigo&#8221;. </p>
<p>Las fechas de giras en cambio eran un poco más sangrantes y no quedaba otra que visitar la ficha de los grupos una por una para dar con las nuevas fechas (esto cuando quieres cubrir más de 200 grupos puede ser un  autentico infierno).</p>
<p><strong>La solución:</strong><br />
Ya tenía la url al myspace de cada grupo en base de datos y la solución más obvia pasaba por crear un script que recogiera y parseara automáticamente el html de esta. El resultado: la tabla de conciertos del grupo mostrada directamente en el panel de administración mi página.</p>
<p><strong>El código:</strong><br />
Como ya vimos en su día, el uso de <em>simple HTML Dom Parser </em> es sencillisimo (más aún si estamos familiarizados con jQuery) y bastaron unas pocas líneas para cumplir con el cometido:</p>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
$html = file_get_html($url);
$item = $html->find('div#profile_bandschedule', 0)->find("table[bgcolor=#ffffff]",0);

if($item != '')
	return '&lt;table>&lt;tr>&lt;td>'.$item->xmltext().'&lt;/td>&lt;/tr>&lt;/table>';
else
	return '';
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2010/03/parseando-html-con-php-ejemplo-real/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presentación de f-engine</title>
		<link>http://www.proyecto-f.net/2010/02/presentacion-de-f-engine/</link>
		<comments>http://www.proyecto-f.net/2010/02/presentacion-de-f-engine/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 10:38:20 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[f-engine]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1893</guid>
		<description><![CDATA[La presentación de hoy me hace especial ilusión, ni se las horas/días/meses que le habré dedicado a esto. 
Hoy ve la luz la versión 0.1 de F-engine, un framework php de código abierto (licencia estilo BSD) basado en codeginiter.
Vídeo de presentación: Creando un blog sencillo con F-engine 

Los rótulos del vídeo están en ingles pero [...]]]></description>
			<content:encoded><![CDATA[<p>La presentación de hoy me hace especial ilusión, ni se las horas/días/meses que le habré dedicado a esto. </p>
<p>Hoy ve la luz la versión 0.1 de <a title="f-engine php framework"  href="http://www.f-engine.net">F-engine</a>, un framework php de código abierto (licencia estilo BSD) basado en <a href="http://codeigniter.com">codeginiter</a>.</p>
<h3>Vídeo de presentación: Creando un blog sencillo con F-engine </h3>
<p><object width="456" height="365"><param name="movie" value="http://www.youtube.com/p/CA30D1E15B96A190&amp;hl=es_ES&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/p/CA30D1E15B96A190&amp;hl=es_ES&amp;fs=1" type="application/x-shockwave-flash" width="456" height="365" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
Los rótulos del vídeo están en ingles pero son bastante sencillos (Si alguien encuentra fallos gramaticales se agradecería el aviso para poder corregirlos).</p>
<h3>Diferencias con codeigniter</h3>
<ul>
<li>Nuevas funciones para base de datos que he llamado &#8220;quick queries&#8221;</li>
<li>Mejoras en la organización de controladores: Los controladores aceptan <em>n</em> sub-directorios</li>
<li>Por defecto los controladores de f-engine aceptan una sola función pública asociada a la URL (Modificable mediante la función <strong>_remap</strong>).</li>
<li>Funciones alternativas para la carga de vistas: Permite la inclusión de variables predefinidas y/o repetitivas desde ficheros externos (Especialmente útil para hojas de estilos, ficheros javascript, cabeceras o pies de página)</li>
<li>El nombre de fichero de una vista debe terminar en &#8220;_view.php&#8221; como convenio</li>
<li>F-engine no incluye ninguna biblioteca de scaffolding</li>
<li>Viene de &#8220;fabrica&#8221; con un proyecto denominado <strong><em>admin</em></strong> que incluye un puñado de aplicaciones web. Estas aplicaciones genéricas tienen como objetivo facilitar la gestión y desarrollo de los proyectos, minimizando el tiempo de programación. Destacan su gestor de bases de datos incorporado,<em>database administrator</em> , y <em>new controller wizard</em>: Aplicación para la creación de formularios basados en estructuras de bases de datos a base de clicks</li>
<li>El código base es compatible con codeigniter al 98%: No debería llevar demasiado tiempo portar proyectos CI a F-engine y viceversa</li>
</ul>
<p><span id="more-1893"></span></p>
<h3>Funcionalidades previstas para v0.2</h3>
<ul>
<li>Mejoras en la documentación en cuanto encuentre a alguien que me ayude con el ingles</li>
<li>Mayor nivel de personalización en <em>new controller wizard</em></li>
<li>Mejoras en <em>database administrator</em>, probablemente la aplicación más verde.</li>
<li>Mejoras de compatibilidad con navegadores distintos a firefox</li>
<li>Corrección de todos los bugs que vayan saliendo</li>
<li>¿Incluir un bugtracker en las aplicaciones?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2010/02/presentacion-de-f-engine/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Presentación de HipHop PHP</title>
		<link>http://www.proyecto-f.net/2010/02/presentacion-de-hiphop-php/</link>
		<comments>http://www.proyecto-f.net/2010/02/presentacion-de-hiphop-php/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 01:00:31 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[hiphop]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1885</guid>
		<description><![CDATA[Los rumores se han confirmado y finalmente facebook ha hecho publico el vídeo de presentación de este compilador para PHP.
La compañía lleva cerca de 6 meses usando el proyecto en sus servidores de producción con cerca de el  90% de su contenido corriendo con HipHop.

Para facilitar su uso en proyectos de terceros, futuras versiones [...]]]></description>
			<content:encoded><![CDATA[<p>Los <a href="http://www.proyecto-f.net/noticias/detalle/ac/facebook-trabaja-en-un-php-compilado-rumor">rumores</a> se han confirmado y finalmente facebook ha hecho publico el vídeo de presentación de este compilador para PHP.</p>
<p>La compañía lleva cerca de 6 meses usando el proyecto en sus servidores de producción con cerca de el  90% de su contenido corriendo con HipHop.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="456" height="366" id="utv809499" name="utv_n_334184"><param name="flashvars" value="autoplay=false" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.ustream.tv/flash/video/4409735" /><embed flashvars="autoplay=false" width="456" height="366" allowfullscreen="true" allowscriptaccess="always" id="utv809499" name="utv_n_334184" src="http://www.ustream.tv/flash/video/4409735" type="application/x-shockwave-flash" /></object></p>
<p>Para facilitar su uso en proyectos de terceros, futuras versiones incluirán compatibilidad con PHP 5.3 (actualmente solo 5.2) y una extensión para ser ejecuto sobre apache además del server propio sobre el que corre actualmente.</p>
<p>Los resultados hablan por si solos:</p>
<ul>
<li>Web: 50% menos en consumo de CPU con el mismo tráfico</li>
<li>API: 30% menos de consumo de CPU con el doble de tráfico</li>
</ul>
<p>Las mas de 300.000 líneas de código del proyecto serán publicadas proximamente en el canal de <a href="http://github.com/facebook/hiphop-php">Facebook en Github</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2010/02/presentacion-de-hiphop-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 expresiones regulares para PHP</title>
		<link>http://www.proyecto-f.net/2009/12/10-expresiones-regulares-para-php/</link>
		<comments>http://www.proyecto-f.net/2009/12/10-expresiones-regulares-para-php/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 03:17:36 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[expresiones regulares]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1843</guid>
		<description><![CDATA[Las expresiones regulares son patrones que describen un conjunto de cadenas sin enumerar sus elementos. Aún y cuando su sintaxis puede resultar algo complicada si no estamos familiarizados con ella, su versatilidad y potencia hacen de las expresiones regulares un recurso imprescindible a la hora de validar los datos enviados desde un formulario web.
A continuación [...]]]></description>
			<content:encoded><![CDATA[<p>Las expresiones regulares son patrones que describen un conjunto de cadenas sin enumerar sus elementos. Aún y cuando su sintaxis puede resultar algo complicada si no estamos familiarizados con ella, su versatilidad y potencia hacen de las expresiones regulares un recurso imprescindible a la hora de validar los datos enviados desde un formulario web.</p>
<p>A continuación os dejo 5 expresiones para PHP con las que validar algunos campos comunes en la mayoría de sites.</p>
<h3>Nombre de usuario</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
$nombre = "userNaME4234432_";
if (preg_match('/^[a-zd_]{4,28}$/i', $nombre)) {
    echo "Nombre de usuario válido.";
}
</pre>
</div>
<h3>Dirección de email</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
$email = "nombre.apellido@domain.com.ar";
if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
    echo "email válido";
}
</pre>
</div>
<h3>Número de teléfono (formato de Estados Unidos, Canadá y México)</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
$tel = "(032)555-5555";
if (preg_match('/^((?[0-9]{3,3})?|[0-9]{3,3}[-. ]?)[ ][0-9]{3,3}[-. ]?[0-9]{4,4}$/', $tel)) {
echo "teléfono válido";
}
</pre>
</div>
<h3>Fechas</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
$string = "15/10/2009";
if (preg_match('/^d{1,2}/d{1,2}/d{4}$/', $string)) {
    echo "fecha correcta.";
}
</pre>
</div>
<h3>Dirección IP</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
$string = "255.255.255.0";
if (preg_match(
'^(?:25[0-5]|2[0-4]d|1dd|[1-9]d|d)(?:[.](?:25[0-5]|2[0-4]d|1dd|[1-9]d|d)){3}$',
$string)) {
    echo "IP correcta.";
}
</pre>
</div>
<p></p>
<h2>Validaciones genéricas:</h2>
<h3>String alpha numérico</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
preg_match("/^([a-z0-9])+$/i", $str)
</pre>
</div>
<p><span id="more-1843"></span></p>
<h3>String alpha numérico con barra baja y guion </h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
 preg_match("/^([-a-z0-9_-])+$/i", $str)
</pre>
</div>
<h3>Cadena númerica</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
preg_match( '/^[\-+]?[0-9]*\.?[0-9]+$/', $str)
</pre>
</div>
<h3>Integer</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
preg_match( '/^[\-+]?[0-9]+$/', $str)
</pre>
</div>
<h3>Base64 válido</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
preg_match('/[^a-zA-Z0-9\/\+=]/', $str)
</pre>
</div>
<p>Más información sobre base64 en <a href="http://es.wikipedia.org/wiki/Base64">wikipedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/12/10-expresiones-regulares-para-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lo mejor del 2009</title>
		<link>http://www.proyecto-f.net/2009/12/lo-mejor-del-2009/</link>
		<comments>http://www.proyecto-f.net/2009/12/lo-mejor-del-2009/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 02:33:53 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1839</guid>
		<description><![CDATA[Apenas quedan unos días para que el 2009 llegue a su fin y parece un buen momento para echar la vista atrás y recordar algunos de los temas más destacados que hemos tratado por aquí.
PHP &#8211; MySql


Generando passwords aleatorios en PHP
Barra de progreso de Uploads en PHP sin Flash
Preparando el terreno para php 5.3
Link wrapper [...]]]></description>
			<content:encoded><![CDATA[<p>Apenas quedan unos días para que el 2009 llegue a su fin y parece un buen momento para echar la vista atrás y recordar algunos de los temas más destacados que hemos tratado por aquí.</p>
<h3>PHP &#8211; MySql</h3>
<p><img src="http://www.proyecto-f.net/wp-content/uploads/2009/11/mysql.jpg" alt="" title="mysql" width="418" height="97" class="aligncenter size-full wp-image-1551" /></p>
<ul>
<li><a href="http://www.proyecto-f.net/2009/10/generando-passwords-aleatorios-en-php/">Generando passwords aleatorios en PHP</a></li>
<li><a href="http://www.proyecto-f.net/2009/09/barra-de-progreso-de-uploads-en-php/">Barra de progreso de Uploads en PHP sin Flash</a></li>
<li><a href="http://www.proyecto-f.net/2009/07/preparando-el-terreno-para-php-5-3/">Preparando el terreno para php 5.3</a></li>
<li><a href="http://www.proyecto-f.net/2009/11/link-wrapper-con-php/">Link wrapper con PHP</a></li>
<li><a href="http://www.proyecto-f.net/2009/12/parsear-html-con-php/">Parsear HTML con PHP</a></li>
<li><a href="http://www.proyecto-f.net/2009/11/cambiar-password-de-root-en-mysql/">Cambiar password de root en MySQL</a></li>
<li><a href="http://www.proyecto-f.net/2009/09/guia-de-optimizacion-de-mysql/">Guía de Optimización MySQL</a></li>
<li><a href="http://www.proyecto-f.net/2009/10/mostrar-el-tiempo-en-php-con-google-weather-api/">Mostrar el tiempo en PHP con Google Weather API</a></li>
<li><a href="http://www.proyecto-f.net/2009/09/enviar-emails-desde-tu-wampserver-local/">Enviar emails desde tu wampserver local</a></li>
<li><a href="http://www.proyecto-f.net/2009/08/open-web-analytics/">Open Web Analytics</a></li>
</ul>
<h3>Javascript / jQuery</h3>
<p><img src="http://www.proyecto-f.net/wp-content/uploads/2009/12/jquery.png" alt="" title="jquery" width="405" height="99" class="aligncenter size-full wp-image-1695" /></p>
<ul>
<li><a href="http://www.proyecto-f.net/2009/10/editores-wysiwyg-jquery/">Editores WYSIWYG jQuery</a></li>
<li><a href="http://www.proyecto-f.net/2009/09/6-calendarios-javascript-con-jquery/">6 Calendarios javascript con jquery</a></li>
<li><a href="http://www.proyecto-f.net/2009/09/diseno-interactivo-javascript/">Diseño interactivo javascript</a></li>
<li><a href="http://www.proyecto-f.net/2009/07/detectar-copiar-cortar-y-pegar-con-jquery/">Detectar copiar, cortar y pegar con jQuery</a></li>
<li><a href="http://www.proyecto-f.net/2009/07/easy-slider/">Easy Slider</a></li>
<li><a href="http://www.proyecto-f.net/2009/10/generando-passwords-con-js/">Generando passwords con JS</a></li>
<li><a href="http://www.proyecto-f.net/2009/10/cuidado-con-parseint-en-javascript/">Cuidado con parseInt en javascript</a></li>
<li><a href="http://www.proyecto-f.net/2009/10/graficas-con-javascript/">Gráficas con javascript</a></li>
</ul>
<h3>Linux</h3>
<p><img src="http://www.proyecto-f.net/wp-content/uploads/2009/11/ubuntu-xspash-4.jpg" alt="" title="ubuntu-xspash-4" width="440" height="133" class="aligncenter size-full wp-image-1577" /></p>
<ul>
<li><a href="http://www.proyecto-f.net/2009/11/themes-xsplash-para-ubuntu-9-10/">Themes xSplash para ubuntu 9.10</a></li>
<li><a href="http://www.proyecto-f.net/2009/11/puesta-a-punto-de-ubuntu-9-10/">Puesta a punto de Ubuntu 9.10</a></li>
<li><a href="http://www.proyecto-f.net/2009/09/limitar-el-uso-de-cpu-de-un-proceso-en-linux/">Limitar el uso de CPU de un proceso en Linux</a></li>
<li><a href="http://www.proyecto-f.net/2009/09/preload-acelera-tu-linux/">Preload: Acelera tu Linux</a></li>
<li><a href="http://www.proyecto-f.net/2009/12/10-comandos-de-consola-linux/">10 comandos de consola Linux</a></li>
</ul>
<h3>Vídeos</h3>
<p><span id="more-1839"></span><br />
<img src="http://www.proyecto-f.net/wp-content/uploads/2009/12/osx.jpg" alt="" title="osx" width="445" height="152" class="aligncenter size-full wp-image-1841" /></p>
<ul>
<li><a href="http://www.proyecto-f.net/2009/09/conociendo-mac-os-x-iii/" rel="bookmark" title="Conociendo Mac OS X">Conociendo Mac OS X</a></li>
<li><a href="http://www.proyecto-f.net/2009/06/premiere-cs3-cap-4-como-hacer-un-croma/" rel="bookmark" title="adobe premiere 04">Hacer un croma con adobe premiere</a></li>
<li><a href="http://www.proyecto-f.net/2009/07/curso-de-xhtml-1-0-strict-y-css-2-1/" rel="bookmark" title="presentación y primeros pasos en xhtml - css">xHTML – Presentación y primeros pasos</a></li>
<li><a href="http://www.proyecto-f.net/2009/08/webtips-07-drag-and-drop/" rel="bookmark" title="webtips 07: drag and drop">Drag &#038; Drop con jQuery</a></li>
</ul>
<h3>Otros</h3>
<p><img src="http://www.proyecto-f.net/wp-content/uploads/2009/11/virtualbox.jpeg" alt="" title="virtualbox" width="452" height="92" class="aligncenter size-full wp-image-1428" /></p>
<ul>
<li><a href="http://www.proyecto-f.net/2009/08/cherokee-webserver/">Cherokee webserver</a></li>
<li><a href="http://www.proyecto-f.net/2009/10/redes-2-0-y-blogs-en-cifras/">Redes 2.0 y blogs en cifras</a></li>
<li><a href="http://www.proyecto-f.net/2009/12/virtualbox-3-1/">VirtualBox 3.1</a></li>
<li><a href="http://www.proyecto-f.net/2009/11/firefox-3-6-beta-4-y-3-7/">Firefox 3.6 beta 4 y 3.7</a></li>
<li><a href="http://www.proyecto-f.net/2009/11/flash-player-10-1-prerelease/">Flash Player 10.1 prerelease</a></li>
<li><a href="http://www.proyecto-f.net/2009/11/google-acelera/">Google acelera</a></li>
<li><a href="http://www.proyecto-f.net/2009/11/video-rodado-con-camaras-de-fotos/">Vídeo rodado con cámaras de fotos</a></li>
</ul>
<p>¿Cuales han sido vuestros favoritos?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/12/lo-mejor-del-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Parsear HTML con PHP</title>
		<link>http://www.proyecto-f.net/2009/12/parsear-html-con-php/</link>
		<comments>http://www.proyecto-f.net/2009/12/parsear-html-con-php/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 18:11:33 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1770</guid>
		<description><![CDATA[PHP Simple HTML DOM Parser es una librería pensada para manipular código HTML de forma sencilla con PHP. Siguiendo una sintaxis que recuerda a jQuery, permite acceder a tags, modificar elementos HTML o extraer contenido en poquísimas lineas de código. 
Veamos un par de ejemplos:


Acceder a elementos HTML

// Create DOM from URL or file
$html = [...]]]></description>
			<content:encoded><![CDATA[<p>PHP Simple HTML DOM Parser es una librería pensada para manipular código HTML de forma sencilla con PHP. Siguiendo una sintaxis que recuerda a jQuery, permite acceder a tags, modificar elementos HTML o extraer contenido en poquísimas lineas de código. </p>
<p>Veamos un par de ejemplos:</p>
<ul>
<li>
<h3>Acceder a elementos HTML</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
// Create DOM from URL or file<br />
$html = file_get_html(&#8216;http://www.google.com/&#8217;);</p>
<p>// Find all images<br />
foreach($html->find(&#8216;img&#8217;) as $element)<br />
       echo $element->src . &#8216;&lt;br>&#8217;;</p>
<p>// Find all links<br />
foreach($html->find(&#8216;a&#8217;) as $element)<br />
       echo $element->href . &#8216;&lt;br>&#8217;;
</p></div>
</li>
<li>
<h3>Modificar elementos HTML</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<p>// Create DOM from string<br />
$html = str_get_html(&#8216;&lt;div id=&#8221;hello&#8221;>Hello&lt;/div>&lt;div id=&#8221;world&#8221;>World&lt;/div>&#8217;);</p>
<p>$html->find(&#8216;div&#8217;, 1)->class = &#8216;bar&#8217;;</p>
<p>$html->find(&#8216;div[id=hello]&#8216;, 0)->innertext = &#8216;foo&#8217;;</p>
<p>echo $html; // Output: &lt;div id=&#8221;hello&#8221;>foo&lt;/div>&lt;div id=&#8221;world&#8221; class=&#8221;bar&#8221;>World&lt;/div>
</p></div>
</li>
<li>
<h3>Extraer contenido</h3>
<div style="width: 420px; overflow-x: auto; background-color: rgb(255, 255, 193);">
// Dump contents (without tags) from HTML<br />
echo file_get_html(&#8216;http://www.google.com/&#8217;)->plaintext;
</div>
</li>
</ul>
<p>Simple HTML DOM Parser requiere PHP 5 o superior para su correcto funcionamiento y es capaz de trabajar con HTML no valido.</p>
<p><a href="http://simplehtmldom.sourceforge.net/">Web oficial de Simple HTML DOM Parser</a><br />
<a href="http://sourceforge.net/projects/simplehtmldom/files/">Descargar desde sourceforge</a></p>
<p>Vía <a href="http://sentidoweb.com/2009/12/11/parseador-html-para-php.php">sentidoweb</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/12/parsear-html-con-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Link wrapper con PHP</title>
		<link>http://www.proyecto-f.net/2009/11/link-wrapper-con-php/</link>
		<comments>http://www.proyecto-f.net/2009/11/link-wrapper-con-php/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 21:19:50 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1492</guid>
		<description><![CDATA[Hace unos meses, mientras programaba la sección noticias, me propuse implementar un link wrapper en los comentarios tal y como hace wordpress.
El script php encargado de guardar los comentarios de las noticias anula el código html-javascript antes de guardarlo en base de datos con el fin de evitar problemas de seguridad. El objetivo era simple, [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unos meses, mientras programaba la sección noticias, me propuse implementar un link wrapper en los comentarios tal y como hace wordpress.</p>
<p>El script php encargado de guardar los comentarios de las noticias anula el código html-javascript antes de guardarlo en base de datos con el fin de evitar problemas de seguridad. El objetivo era simple, añadir automáticamente un &lt;a href=&#8221;">&#8230;&lt;/a> a los links de cada comentario y tras un par de pruebas la función <strong><em>linkwrap</em></strong> quedo así:</p>
<div style="width: 450px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
 function linkwrap ($text) {
     return preg_replace('@((https?://|https?://www.|www.)([-\w\.]+)+(:\d+)?(/([\S/_\.]*(\?\S+)?)?)?)@', '&lt;a href="$1">$1&lt;/a>', $text);
 }
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/11/link-wrapper-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Añadir marca de agua a tus imágenes con php</title>
		<link>http://www.proyecto-f.net/2009/11/anadir-marca-de-agua-a-tus-imagenes-con-php/</link>
		<comments>http://www.proyecto-f.net/2009/11/anadir-marca-de-agua-a-tus-imagenes-con-php/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 21:09:10 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[marca de agua]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[watermark]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1349</guid>
		<description><![CDATA[Hoy descubro en sitepoint un tutorial que detalla y explica los pasos necesarios para añadir una marca de agua, al vuelo, a una imagen con php. 
El script final es el siguiente:


&#60;?php
header('content-type: image/jpeg');  

$watermark = imagecreatefrompng('watermark.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = imagecreatefromjpeg($_GET['src']);
$size = getimagesize($_GET['src']);
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy descubro en <a title="image watermark with php" target="_blank" href="http://articles.sitepoint.com/article/watermark-images-php">sitepoint</a> un tutorial que detalla y explica los pasos necesarios para añadir una marca de agua, al vuelo, a una imagen con php. </p>
<p>El script final es el siguiente:</p>
<div style="width: 450px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre>
&lt;?php
header('content-type: image/jpeg');  

$watermark = imagecreatefrompng('watermark.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = imagecreatefromjpeg($_GET['src']);
$size = getimagesize($_GET['src']);
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = $size[1] - $watermark_height - 5;
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);  

?>
</pre>
</div>
<p>Pásate por el <a title="image watermark with php" target="_blank" href="http://articles.sitepoint.com/article/watermark-images-php">artículo original</a> donde se explica detalladamente cada uno de los pasos del script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/11/anadir-marca-de-agua-a-tus-imagenes-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mostrando avatares desde gravatar</title>
		<link>http://www.proyecto-f.net/2009/11/mostrando-avatares-desde-gravatar/</link>
		<comments>http://www.proyecto-f.net/2009/11/mostrando-avatares-desde-gravatar/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 00:53:04 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1344</guid>
		<description><![CDATA[Gravatar es un servicio online gratuito que asocia avatares a cuantas de email. Wordpress sin ir mas lejos hace uso del mismo para mostrar los avatares que acompañan a los comentarios en el blog. 
Las ventajas son claras, un usuario con cuenta en gravatar muestra su avatar junto a sus comentarios en cualquier blog wordpress [...]]]></description>
			<content:encoded><![CDATA[<p><a title="avatares asociados al email" href="http://en.gravatar.com/">Gravatar</a> es un servicio online gratuito que asocia avatares a cuantas de email. Wordpress sin ir mas lejos hace uso del mismo para mostrar los avatares que acompañan a los comentarios en el blog. </p>
<p>Las ventajas son claras, un usuario con cuenta en gravatar muestra su avatar junto a sus comentarios en cualquier blog wordpress en el que posteé, además de muchas otras páginas web que hacen uso de ello.</p>
<p>Desde el punto de vista del desarrollador, su integración en cualquier aplicación web no puede ser más sencilla. Basta con crear un elemento img html cuyo atributo src apunte a
<pre>"http://www.gravatar.com/avatar/" . $md5_delEmail . ".jpg"</pre>
<p>Si estamos programando en PHP la sentencia completa sería la siguiente:</p>
<div style="width: 450px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre style="white-space:normal;">
"http://www.gravatar.com/avatar/" .<strong> md5($emailDelUsuario)</strong> . ".jpg"
</pre>
</div>
<p>La url acepta además algunos parámetros extra. En caso de que el usuario no tenga una cuenta creada en dicho servicio, por ejemplo, podemos definir una imagen standard por medio del parámetro <strong>d</strong>. El resultado sería el siguiente:</p>
<div style="width: 450px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre style="white-space:normal;">
"http://www.gravatar.com/avatar/" . md5($emailDelUsuario) . ".jpg?<strong>d=http%3A%2%2Fproyecto-f.net.net%2img_por_defecto.jpg</strong>";
</pre>
</div>
<p>El servicio crea varios tamaños de la misma imagen para facilitar su integración en nuestros diseños. Para definir el tamaño de la imagen existe el parámetro <strong>s</strong>, recogeríamos un avatar de 90&#215;90 pixeles llamando a la siguiente url:</p>
<div style="width: 450px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre style="white-space:normal;">
"http://www.gravatar.com/avatar/" . md5($emailDelUsuario) . ".jpg?d=http%3A%2%2Fproyecto-f.net.net%2img_por_defecto.jpg&#038;<strong>s=90</strong>";
</pre>
</div>
<p>Dado que encriptamos el email del usuario mediante el algoritmo md5 no ponemos en peligro la privacidad de nadie.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/11/mostrando-avatares-desde-gravatar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando + para unir arrays en PHP</title>
		<link>http://www.proyecto-f.net/2009/11/usando-para-unir-arrays-en-php/</link>
		<comments>http://www.proyecto-f.net/2009/11/usando-para-unir-arrays-en-php/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 00:29:33 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1329</guid>
		<description><![CDATA[Acostumbro a hacer uso de la funcion array_merge() de php para unir arrays pero hoy descubro, vía electrictoolbox, una manera aún más sencilla de hacerlo por medio de operador &#8216;+&#8217;.
Para el ejemplo partimos de dos array que comparten algunas elementos:


$array1 = array(
    &#160;'fruit' => 'apple',
    &#160;'vegetable' => 'carrot',
  [...]]]></description>
			<content:encoded><![CDATA[<p>Acostumbro a hacer uso de la funcion array_merge() de php para unir arrays pero hoy descubro, vía <a target="_blank" title="array merge php" href="http://www.electrictoolbox.com/using-plus-merge-arrays-php/">electrictoolbox</a>, una manera aún más sencilla de hacerlo por medio de operador &#8216;+&#8217;.</p>
<p>Para el ejemplo partimos de dos array que comparten algunas elementos:</p>
<div style="width: 450px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre style="white-space:normal;">
$array1 = array(<br />
    &nbsp;'fruit' => 'apple',<br />
    &nbsp;'vegetable' => 'carrot',<br />
    &nbsp;'drink' => 'water',<br />
    &nbsp;'snack' => 'chips'<br />
);</p>
<p>$array2 = array(<br />
    &nbsp;'fruit' => 'banana',<br />
    &nbsp;'drink' => 'juice',<br />
    &nbsp;'sport' => 'running'<br />
);</p>
<pre/>
</div>
<p>Si los unimos por medio '+' de la siguiente manera:<br />
<em><strong>$array3 = $array1 + $array2;</strong></em><br />
Si ahora miramos el contenido de $array3 con la funcion print_r() el resultado quedaría así:</p>
<div style="width: 450px; overflow-x: auto; background-color: rgb(255, 255, 193);">
<pre style="white-space:normal;">
Array<br />
(<br />
    &nbsp;[fruit] => apple<br />
    &nbsp;[vegetable] => carrot<br />
    &nbsp;[drink] => water<br />
    &nbsp;[snack] => chips<br />
    &nbsp;[sport] => running<br />
)</p>
<pre/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/11/usando-para-unir-arrays-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sistema de gestión de usuarios en PHP</title>
		<link>http://www.proyecto-f.net/2009/10/sistema-de-gestion-de-usuarios-en-php/</link>
		<comments>http://www.proyecto-f.net/2009/10/sistema-de-gestion-de-usuarios-en-php/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 18:11:24 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1288</guid>
		<description><![CDATA[UserCake es un sencillo sistema de gestión de usuarios desarrollado en PHP y mysql. Su objetivo es proporcionar una base para construir aplicaciones donde los usuarios puedan registrarse, legearse y editar sus datos de manera simple. 

Sus funcionalidades incluyen:

 Login
 Registro
 Password perdido
 Actualizar password
 Actualizar detalles de usuario
 Plantillas de email
 seguridad SHA1 + [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://usercake.com/feature-list.php">UserCake</a> es un sencillo sistema de gestión de usuarios desarrollado en PHP y mysql. Su objetivo es proporcionar una base para construir aplicaciones donde los usuarios puedan registrarse, legearse y editar sus datos de manera simple. </p>
<p><img src="http://www.proyecto-f.net/wp-content/uploads/2009/10/usrcake.jpg" alt="usrcake" title="usrcake" width="238" height="185" class="aligncenter size-full wp-image-1289" /></p>
<p>Sus funcionalidades incluyen:</p>
<ul>
<li> Login</li>
<li> Registro</li>
<li> Password perdido</li>
<li> Actualizar password</li>
<li> Actualizar detalles de usuario</li>
<li> Plantillas de email</li>
<li> seguridad SHA1 + Salt / Hash</li>
<li> Activación de cuenta</li>
<li> Grupos de usuario (Basic, id &#8211; group_name)</li>
</ul>
<p>Incluye para ello funciones que cubren necesidades frecuentes como isUserLoggedIn() o isGroupMember($id) entre otras.</p>
<p>Vía <a href="http://www.webresourcesdepot.com/">webresourcesdepot</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/10/sistema-de-gestion-de-usuarios-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Proteger descargas con PHP</title>
		<link>http://www.proyecto-f.net/2009/10/proteger-descargas-con-php/</link>
		<comments>http://www.proyecto-f.net/2009/10/proteger-descargas-con-php/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 07:30:30 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1188</guid>
		<description><![CDATA[En ocasiones un proyecto requiere que ciertos ficheros solo puedan ser descargados por un perfil concreto de usuarios; usuarios registrados, admins, etc.
Ocultar los links a aquellos usuarios que no tiene acceso a estos documentos suele ser suficiente por lo general, pero debemos ser conscientes de que este método no impide que un usuario con acceso [...]]]></description>
			<content:encoded><![CDATA[<p>En ocasiones un proyecto requiere que ciertos ficheros solo puedan ser descargados por un perfil concreto de usuarios; usuarios registrados, admins, etc.</p>
<p>Ocultar los links a aquellos usuarios que no tiene acceso a estos documentos suele ser suficiente por lo general, pero debemos ser conscientes de que este método no impide que un usuario con acceso al fichero pueda compartir la url con otros. </p>
<p>Si este nivel de seguridad nos resulta insuficiente, una alternativa puede ser<strong> realizar las descargas por medio de un script PHP en lugar de apuntar al fichero directamente</strong>. Este método podría permitirnos incluso la descarga de ficheros que se encuentren fuera de los directorios a los que apache tiene acceso.</p>
<div style="width:450px;overflow-x:auto;background-color:#FFFFC1;">
<pre>
if($usuarioValido == true) {<br />
      $name = $_GET['file'];<br />
      header("Content-disposition: attachment; filename=$name");<br />
      header("Content-type: application/octet-stream");<br />
      readfile($directorio.'/'.$name);<br />
 } else {<br />
      echo "No puedes descargar este archivo";<br />
}</p>
<pre/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/10/proteger-descargas-con-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Añade la potencia de PHP a tus CSS</title>
		<link>http://www.proyecto-f.net/2009/10/1179/</link>
		<comments>http://www.proyecto-f.net/2009/10/1179/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 05:56:14 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1179</guid>
		<description><![CDATA[Vía anieto2k descubro CssDispatcher, una biblioteca para manejar CSS sobre PHP que permite procesar múltiples hojas de estilo como plantillas PHP, unirlas, minimizarlas y servirlas dependiendo del navegador.
Mezclar las tecnologías de programación con el lenguaje de estilos CSS puede resultar interesante para grupos de trabajo en los que el diseñador tenga unos conocimientos básicos de [...]]]></description>
			<content:encoded><![CDATA[<p>Vía <a target="_blank" href="http://www.anieto2k.com/2009/10/11/cssdispatcher-maneja-tus-css-como-un-profesional/">anieto2k</a> descubro <a target="_blank" href="http://cssdispatcher.sourceforge.net/">CssDispatcher</a>, una biblioteca para manejar CSS sobre PHP que permite procesar múltiples hojas de estilo como plantillas PHP, unirlas, minimizarlas y servirlas dependiendo del navegador.</p>
<p>Mezclar las tecnologías de programación con el lenguaje de estilos CSS puede resultar interesante para grupos de trabajo en los que el diseñador tenga unos conocimientos básicos de programación, esta biblioteca es un claro ejemplo de como añadir potencia y comodidad a la hora de escribir, mantener y aumentar el rendimiento de las hojas de estilo.</p>
<h3>Variables PHP en CSS</h3>
<p>El uso de variables dentro de las CSS puede ayudarnos a realizar pequeñas modificaciones (cambios de colores o tamaños de texto) sin esfuerzo:</p>
<pre>
.paginacion { border: 1px solid &lt;?=$rojo ?>; }
.paginacion a { color: &lt;?=$rojo ?>; }
</pre>
<h3>Hojas de estilo adaptadas al browser</h3>
<p>Con CssDispatcher definir CSS específicas para el navegador es tan fácil como añadir un segundo parámetro en el constructor de la clase:</p>
<pre>
$styles = new CssDispatcher;
// Este CSS solo se enviará cuando sea Internet Explorer 6
$styles->add(new Css('ie-hacks.css.php', Css::UA_IE6));
$styles->add(new Css('general.css.php'));
$styles->render();
</pre>
<p>Puedes especificar las siguientes familias de navegadores: Internet Explorer 6, Internet Explorer > 6 , Gecko y WebKit. También puedes utilizar los sinónimos UA_MOZILLA, UA_FIREFOX, UA_SAFARI y UA_CHROME respectivamente.</p>
<p><a href="Con CssDispatcher definir CSS específicas de navegador es tan fácil como añadir un segundo parámetro en el constructor de la clase Css:">Más info</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/10/1179/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generando passwords aleatorios en PHP</title>
		<link>http://www.proyecto-f.net/2009/10/generando-passwords-aleatorios-en-php/</link>
		<comments>http://www.proyecto-f.net/2009/10/generando-passwords-aleatorios-en-php/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 11:30:39 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=1132</guid>
		<description><![CDATA[Sencillo código para generar strings aleatorios en PHP, útil por ejemplo para asignar un password a un usuarios que acaba de registrarse en nuestra web.


$str = str_shuffle('abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@#%$*');
$pass =  substr($str,0,$length)


Como se aprecia en el código, el proceso es tan sencillo como ordenar aleatoriamente una cadena de caracteres alfanuméricos para después tomar una porción del string [...]]]></description>
			<content:encoded><![CDATA[<p>Sencillo código para generar strings aleatorios en PHP, útil por ejemplo para asignar un password a un usuarios que acaba de registrarse en nuestra web.</p>
<div style="width:450px;overflow:auto;">
<code><br />
$str = str_shuffle('abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@#%$*');<br />
$pass =  substr($str,0,$length)<br />
</code>
</div>
<p>Como se aprecia en el código, el proceso es tan sencillo como ordenar aleatoriamente una cadena de caracteres alfanuméricos para después tomar una porción del string generado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/10/generando-passwords-aleatorios-en-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Barra de progreso de Uploads en PHP sin Flash</title>
		<link>http://www.proyecto-f.net/2009/09/barra-de-progreso-de-uploads-en-php/</link>
		<comments>http://www.proyecto-f.net/2009/09/barra-de-progreso-de-uploads-en-php/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 19:12:40 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=872</guid>
		<description><![CDATA[Hace ya tiempo que conozco/uso APC, una librería para PHP cuyo propósito es acelerar la ejecución y optimizar el consumo de recursos de nuestros scripts mediante el cacheo de opcodes.

Para mi sorpresa, hoy descubro que APC cuenta además con algunos extras como la directiva rfc1867 (compatible con  php 5.2 y superior) que nos permite [...]]]></description>
			<content:encoded><![CDATA[<p>Hace ya tiempo que conozco/uso <a title="opcode cache for PHP" target="_blank" href="http://es.php.net/apc">APC</a>, una librería para PHP cuyo propósito es acelerar la ejecución y optimizar el consumo de recursos de nuestros scripts mediante el cacheo de opcodes.<br />
<!--Por poner un ejemplo: En mi laptop mi configuración actual de wordpress, con 5 plugins activos, reduce su consumo de memoria desde los 15,61Mb hasta 4,7Mb activando APC. La sección de noticias tampoco queda atrás pasando de 1.3Mb y 0.04 segundos de tiempo de ejecución a 0.37Mb y 0.03 segundos (La reducción de tiempos no es especialmente significativa ya que el cuello de botella de la aplicación esta en la base de datos, la mejora es mucho más holgada para scripts que no dependan de aplicaciones externas).--></p>
<p>Para mi sorpresa, hoy descubro que <strong>APC cuenta además con algunos extras</strong> como la directiva rfc1867 (compatible con  php 5.2 y superior) <strong>que nos permite crear barras de progreso para uploads, sin hacer uso de flash</strong>, como se muestra en el siguiente video.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/aXZ3WYdB5sQ&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/aXZ3WYdB5sQ&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><span id="more-872"></span></p>
<p>Lo primero es instalar APC, puedes seguir <a href="http://es.php.net/apc">la guía de php.net</a>. Una vez instalado será suficiente con añadir estas dos líneas en el php.ini y reiniciar apache.</p>
<p><code>extension=php_apc.dll<br />
apc.rfc1867 = On </code></p>
<p><strong>El formulario</strong><br />
<img src="http://www.proyecto-f.net/wp-content/uploads/2009/09/Picture-11.png" alt="Upload form" title="Upload form" width="439" height="191" class="alignleft size-full wp-image-886" /><br />
El formulario de upload requerirá de un identificador único, bastara con añadir un campo oculto;<br />
<code>&lt;input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="&lt;?php echo $unique_id?>"/&gt;</code></p>
<p><strong>PHP</strong><br />
Llegado a este punto toca crear un script php que nos muestre el estado del envió, este será consultado cada cierto tiempo con llamadas ajax.</p>
<p><code><br />
&lt;?php<br />
if(isset($_GET['progress_key'])) {<br />
  $status = apc_fetch('upload_'.$_GET['progress_key']);<br />
  echo $status['current']/$status['total']*100;<br />
}<br />
?&gt;</code></p>
<p><strong>Javascript</strong><br />
Ya solo nos quedaría el código javascript que lanza las llamadas ajax. Es importante no olvidarnos de enviar el identificador del upload en la llamada.</p>
<p><code><br />
function getProgress(){<br />
  GDownloadUrl("getprogress.php?progress_key=&lt;?php echo($unique_id)?&gt;",<br />
               function(percent, responseCode) {<br />
                   document.getElementById("progressinner").style.width = percent+"%";<br />
                   if (percent < 100){<br />
                        setTimeout("getProgress()", 100);<br />
                   }<br />
               });<br />
}<br />
function startProgress(){<br />
    document.getElementById("progressouter").style.display="block";<br />
    setTimeout("getProgress()", 1000);<br />
}<br />
</code></p>
<p>Y Eso es todo. En <a target="_blank" href="http://www.ibm.com/developerworks/library/os-php-v525/index.html">este</a> y <a  target="_blank" href="http://webreflection.blogspot.com/2007/10/upload-progress-bar-with-php5-apc-and.html">este enlace</a> encontrareis más información y un .zip en descarga directa con todos los archivos ,a modo de demo, listos para probar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/09/barra-de-progreso-de-uploads-en-php/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Detectar petición ajax en PHP</title>
		<link>http://www.proyecto-f.net/2009/09/detectar-peticion-ajax-en-php/</link>
		<comments>http://www.proyecto-f.net/2009/09/detectar-peticion-ajax-en-php/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 09:05:42 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=784</guid>
		<description><![CDATA[Muchos programadores acostumbran a usar el mismo fichero PHP para peticiones estándar y peticiones ajax. El uso de un único script facilita el mantenimiento del código simplificando cualquier modificación que realicemos en un futuro además de aportar ventajas en el cacheo. 
Normalmente se añade un parámetro a GET o POST para identificar el tipo de [...]]]></description>
			<content:encoded><![CDATA[<p>Muchos programadores acostumbran a usar el mismo fichero PHP para peticiones estándar y peticiones ajax. El uso de un único script facilita el mantenimiento del código simplificando cualquier modificación que realicemos en un futuro además de aportar ventajas en el cacheo. </p>
<p>Normalmente se añade un parámetro a GET o POST para identificar el tipo de llamada, pero si hacemos uso de algún framework javascript podemos ahorrárnoslo y detectar la llamada así:</p>
<pre><code>
 if( !empty($_SERVER['HTTP_X_REQUESTED_WITH'])
     &#038;&#038; strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])
     == 'xmlhttprequest' ) {

      /* petición ajax */

 } else {

      /* no es una petición ajax.... */
 }
</code>
</pre>
<p>La variable HTTP_X_REQUESTED_WITH es totalmente dependiente de la librería javascript utilizada pero prácticamente todas (Prototype, jQuery, Mootools,YUI&#8230;) la envían.</p>
<p>Si por el contrario realizais las llamadas ajax &#8220;a mano&#8221; podéis añadir la cabecera necesaria de la siguiente manera:</p>
<div  style="width:420px;overflow:auto;">
<pre><code>
xmlHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
</code></pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/09/detectar-peticion-ajax-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preparando el terreno para php 5.3</title>
		<link>http://www.proyecto-f.net/2009/07/preparando-el-terreno-para-php-5-3/</link>
		<comments>http://www.proyecto-f.net/2009/07/preparando-el-terreno-para-php-5-3/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 05:25:16 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=601</guid>
		<description><![CDATA[PHP 5.3 vio la luz hará un mes y ya comentamos por aquí algunas de sus novedades. Lo más destacable, mejoras muy importantes de rendimiento (15% para wordpress, 20% en drupal y hasta un 30% en otras), un driver nativo para mysql y un puñado de nuevas funciones. 
Personalmente no tengo intención de migrar a [...]]]></description>
			<content:encoded><![CDATA[<p>PHP 5.3 vio la luz hará un mes y ya comentamos por aquí algunas de sus novedades. Lo más destacable, mejoras muy importantes de rendimiento (15% para wordpress, 20% en drupal y hasta un 30% en otras), un driver nativo para mysql y un puñado de nuevas funciones. </p>
<p>Personalmente no tengo intención de migrar a la nueva versión este año (a menos que algún proyecto lo requiera por razones de fuerza mayor, cosa que dudo). De todas formas creo que es bueno ir conociendo las diferencias / incompatibilidades entre 5.X y 5.3 para evitarlas en las aplicaciones que escriba a partir de ahora, y quitarme así, dolores de cabeza si algún día toca migrar una aplicación. Recordemos que 5.3 es un acercamiento a lo que será PHP 6, así que antes o después nos va a tocar pegarnos con ello.</p>
<p>A continuación tenéis un pequeño listado de problemas que podemos encontrarnos al ejecutar nuestro código sobre la última versión del lenguaje.<br />
<span id="more-601"></span></p>
<ul>
<li>La función split está &#8220;deprecated&#8221;, probablemente deje de funcionar en PHP 6. Se recomienda hacer uso de explode</li>
<li>los short tags, como &#8216;&lt;?&#8217; o &#8216;&lt;?=&#8217;, están desactivados en la configuración por defecto. Podemos activarlos en el php.ini pero estos dejarán de funcionar en PHP 6, mejor nos vamos acostumbrando a escribir &#8216;&lt;?php&#8217; y &#8216;&lt;? echo&#8217;</li>
<li>mkdtime y date sueltan warnings a menos que definamos la zona horaria: date_default_timezone_set(’Europe/Madrid’)</li>
<li>Código como &#8216;$log = <strong>&#038;</strong> new&#8217; también sacara un deprecated warning. Tendremos que borrar el &#038;. Hay varias librerías/frameworks como codeigniter o cakephp que hacen uso de estas llamadas. De momento tendremos que conformarnos con desactivar este tipo de avisos, error_reporting(E_ALL &#038; ~ E_DEPRECATED), mientras sus desarrolladores lo solucionan</li>
<li>Si al final de un script y tras el símbolo de cierre (?>) existen espacios vacíos, no podrás hacer un header(”location:”) porque te dirá que “headers already sent“. Hasta ahora sólo pasaba si tenías caracteres vacíos antes del comienzo de script (<?).</li>
<li><strong>ereg()</strong> y compañía ya no existen.Tendremos que reemplazarlas por preg_match y reescribir las expresiones regulares. Yo jamas he usado ereg, de esta me libro, si es tu caso probablemente te venga bien echarle un vistazo a <a title="" href="http://devthought.com/tumble/2009/06/fix-ereg-is-deprecated-errors-in-php-53/">esta página</a>.</li>
</ul>
<p>Para terminar os dejo el <a title=""migrar desde php 5.2 a 5.3 href="http://es2.php.net/manual/en/migration53.php">link</a> a la página oficial de php para migrar desde 5.2 a 5.3</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/07/preparando-el-terreno-para-php-5-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lo mejor de la semana en la red</title>
		<link>http://www.proyecto-f.net/2009/07/lo-mejor-de-la-semana-en-la-red-8/</link>
		<comments>http://www.proyecto-f.net/2009/07/lo-mejor-de-la-semana-en-la-red-8/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 01:43:58 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[enlaces rapidos]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[productividad]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=469</guid>
		<description><![CDATA[En unas horas salgo para Barcelona y estaré ausente al menos un par de días. Aquí os dejo un popurrí de algunos artículos interesantes que me he ido encontrando por la red estos días para que no os aburráis  .
La productividad de los ingenieros informáticos ha subido un 200%-400% en 10 años
A causa del [...]]]></description>
			<content:encoded><![CDATA[<p>En unas horas salgo para Barcelona y estaré ausente al menos un par de días. Aquí os dejo un popurrí de algunos artículos interesantes que me he ido encontrando por la red estos días para que no os aburráis <img src='http://www.proyecto-f.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p><a title="Sube la productividad de los ingenieros" href="http://www.linux-party.com//modules.php?name=News&amp;file=article&amp;sid=4718">La productividad de los ingenieros informáticos ha subido un 200%-400% en 10 años</a><br />
A causa del software de código abierto, más herramientas de programación, bibliotecas comunes, un acceso más fácil a la información, la mejora de la educación y otros factores</p>
<p><a title="Prueba android en un pc" href="http://www.genbeta.com/sistemas-operativos/prueba-android-en-tu-ordenador">Prueba Android en tu ordenador </a><br />
Existe un LiveCD que  no ocupa ni doscientos megas, ideal para descargarlo  y echarle un vistazo al SO para moviles de Google.</p>
<p><a title="Timeline arrastrable con jquery" href="http://blog.scriptia.net/articulos/2008/10/jquery-del-espagueti-al-plugin.html">Tutorial jQuery para crear un timeline arrastrable</a><br />
Se explica como desplazar horizontalmente mediante arrastre (clickar, arrastrar, soltar) un bloque de contenido. <a title="Demo timeline arrastrable jquery" href="http://choangalvez.nom.es/presentaciones/jquery/examples/timeline-jquery.html">Ver demo</a><br />
<span id="more-469"></span><br />
<a title="Linux debe aprender de Apple" href="http://www.muylinux.com/2009/07/10/%C2%BFpuede-linux-aprender-algo-de-apple/">¿Puede Linux aprender algo de Apple?</a><br />
Los desarrolladores implicados en el software Open Source destacan por sus conocimientos técnicos, pero no por implementar soluciones orientadas al gran público. Y es aquí donde las distribuciones como Ubuntu, orientadas a un usuario medio, tienen que ponerse las pilas.</p>
<p><a title="migración a php 5.3" href="http://www.programania.net/php/migracion-a-php-5-3-primeras-experiencias/">Migrar a php 5.3</a><br />
Ya podemos encontrar por internet las primeras experiencias de los usuarios</p>
<p>P.D. Con un poco de suerte este será el último &#8220;Lo mejor de la semana en la red&#8221;. Llevo unos días trabajando en un gestor de noticias colaborativo, al estilo meneame o digg pero orientado a la informática/programación/imagen y sonido, que espero tener listo el día 21 para lanzarlo en el aniversario de el blog junto a algún anuncio más <img src='http://www.proyecto-f.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/07/lo-mejor-de-la-semana-en-la-red-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lo mejor de la semana en la red</title>
		<link>http://www.proyecto-f.net/2009/06/lo-mejor-de-la-semana-en-la-red-7/</link>
		<comments>http://www.proyecto-f.net/2009/06/lo-mejor-de-la-semana-en-la-red-7/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 16:48:32 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[enlaces rapidos]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=322</guid>
		<description><![CDATA[Prueba de concepto para Gnome 3.0

Fruto de el brainstorm que se está dando entre los desarrolladores de Gnome llega una propuesta de lo más novedosa.
PHP 5.3.0 el próximo 30 de Junio
Incluye importantísimas novedades, como por ejemplo: Namespaces (espacios de nombre), funciones anónimas (lambda y closures), driver nativo de MySQL, soporte mejorado para Windows, archivos Phar [...]]]></description>
			<content:encoded><![CDATA[<p><a title="video concepto gnome 3.0" href="http://www.vivalinux.com.ar/desktop/ventanas-inteligentes-en-gnome-3.0">Prueba de concepto para Gnome 3.0</a></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/lsZvwyxJ9vk&amp;hl=es&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/lsZvwyxJ9vk&amp;hl=es&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Fruto de el brainstorm que se está dando entre los desarrolladores de Gnome llega una propuesta de lo más novedosa.</p>
<p><a title="fecha de lanzamiento php 5.3" href="http://www.vivaphp.com.ar/eventos/php-5.3.0-el-30-06-09">PHP 5.3.0 el próximo 30 de Junio</a><br />
Incluye importantísimas novedades, como por ejemplo: Namespaces (espacios de nombre), funciones anónimas (lambda y closures), driver nativo de MySQL, soporte mejorado para Windows, archivos Phar (similares a los JAR de Java) y <a title="php 5.3 benchmark" href="http://schlueters.de/blog/archives/68-PHP-5.3-Up-to-30%25-performance-win.html">mejoras de rendimiento </a>de hasta un 30%.</p>
<p><a title="virtualbox 3.0 beta2" href="http://www.vivalinux.com.ar/soft/virtualbox-3.0-beta2">VirtualBox 3.0 Beta 2</a><br />
VirtualBox 3.0 será una grandísima versión que traerá características como multiprocesamiento simétrico (SMP), aceleración OpenGL 2.0 y soporte experimental de Direct3D 8 y 9.</p>
<p><span id="more-322"></span></p>
<p><a title="Los 500 supercomputadores más potentes del mundo" href="http://diegocg.blogspot.com/2009/06/la-lista-de-los-500-principales.html">Los 500 principales</a><br />
Curiosidades y estadísticas de los 500 superordenadores más potentes del mundo.</p>
<p><a title="firefox 3.5 el 30 de junio" href="http://www.theinquirer.es/2009/06/28/firefox-35-final-el-martes-30-de-junio.html">Firefox 3.5 final este martes 30 de junio</a><br />
Versión que ha muestra estabilidad, rapidez y una mejorada en la gestión de la memoria.</p>
<p><a title="Las 10 habilidades mas importantes para los programadores del futuro" href="http://www.dosideas.com/actualidad/503-las-10-habilidades-mas-importantes-para-los-programadores-del-futuro.html">Las 10 habilidades más importantes para los programadores del futuro</a><br />
Articulo de dosideas.com que habla sobre las 10 habilidades que deberíamos aprender para que nuestro currículum sea relevante por los siguientes 5 años.</p>
<p><a title="howto ids cortas" href="http://kevin.vanzonneveld.net/techblog/article/create_short_ids_with_php_like_youtube_or_tinyurl/">Crear ids cortas como las de youtube</a><br />
Howto para crear ids cortas combinando números y letras como hacen youtube y muchas otras</p>
<p><a title="Solo es aplicable a correos enviados a otras cuentas gmail" href="http://www.genbeta.com/web/gmail-ahora-permite-adjuntar-archivos-de-hasta-25-mb">Mejoras en gmail</a><br />
Ya se pueden enviar archivos adjuntos de hasta 25mb</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/06/lo-mejor-de-la-semana-en-la-red-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>webtips 04: Optimizar la carga de una página web 2/2</title>
		<link>http://www.proyecto-f.net/2009/06/webtips-04-optimizar-la-carga-de-una-pagina-web-22/</link>
		<comments>http://www.proyecto-f.net/2009/06/webtips-04-optimizar-la-carga-de-una-pagina-web-22/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 22:48:04 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[videotutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=266</guid>
		<description><![CDATA[Cuarta entrega de webtips, segunda parte. Seguimos con los consejos para agilizar la carga de nuestra web de la mano de Yslow.

En el vídeo se me olvida comentar la subpestaña tools de Yslow. En la misma encontrareis diferentes herramientas listas para usar (hace uso de páginas externas, pero eso es lo de menos). Aquí tenéis [...]]]></description>
			<content:encoded><![CDATA[<p>Cuarta entrega de webtips, segunda parte. Seguimos con los consejos para agilizar la carga de nuestra web de la mano de Yslow.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="456" height="365" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/p/EAA75FB25F3A54AF&amp;hl=es&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="456" height="365" src="http://www.youtube.com/p/EAA75FB25F3A54AF&amp;hl=es&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>En el vídeo se me olvida comentar la subpestaña tools de Yslow. En la misma encontrareis diferentes herramientas listas para usar (hace uso de páginas externas, pero eso es lo de menos). Aquí tenéis el listado de utilidades y sus respectivas descripciones:<br />
<span id="more-266"></span></p>
<p><strong>JSLint </strong>- Run JSLint on all JavaScript code in this document<br />
<strong>All JS </strong> &#8211; Show all JavaScript code in this document<br />
<strong>All JS Beautified</strong> &#8211; Show all JavaScript code in this document in an easy to read format<br />
<strong>All JS Minified</strong> &#8211; Show all JavaScript code in this document in a minified (no comments or white space) format<br />
<strong>All CSS</strong> &#8211; Show all CSS code in this document<br />
<strong>All Smush.it™</strong> &#8211; Run Smush.it™ on all image components in this document<br />
<strong>Printable View</strong> &#8211; Show a printable view of grades, component lists, and statistics</p>
<p>Enlaces a proyectos mencionados en el tutorial:</p>
<p><a title="Sistema de cache para PHP" href="http://es2.php.net/apc">Apc</a><br />
Sistema de cache para php que nos permite reducir la carga y ejecución de nuestro proyectos PHP sin cambiar una sola linea de código. Ver proceso de instalación en windows <a title="proceso instalación de apc en windows" href="http://docs.moodle.org/en/Installing_APC_in_Windows">aquí</a>.</p>
<p><a title="Extensión para el firefox" href="http://developer.yahoo.com/yslow/">Yslow</a><br />
Extensión para el firefox/firebug que analiza nuestro proyecto web en busca de &#8220;cuellos de botella&#8221; que ralenticen la carga de nuestro site.</p>
<p><a title="web site de akamai en castellano" href="http://spanish.akamai.com/">Akamai</a><br />
El website de akamai en castellano</p>
<p><a title="amazon s3" href="http://aws.amazon.com/s3/">Amazon s3</a><br />
Website de el servicio de almacenamiento distribuido de amazon, sin duda uno de los más populares hoy en día.</p>
<p>&#8212;&#8212;-</p>
<p><a title="video tutorial webtips 04 segunda parte" href="http://www.proyecto-f.net/wp-content/plugins/download-monitor/download.php?id=7">descargar el vídeo</a><br />
<a title="video tutorial webtips 04" href="http://www.proyecto-f.net/wp-content/plugins/download-monitor/download.php?id=6">descargar la primera parte</a></p>
<p><strong>Nota:</strong> El vídeo hace uso del codec H264. Si tienes algún problema para reproducirlo usa el <a title="vlc media player" href="http://www.videolan.org/vlc/">vlc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/06/webtips-04-optimizar-la-carga-de-una-pagina-web-22/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://www.proyecto-f.net/wp-content/plugins/download-monitor/download.php?id=6" length="150311248" type="video/x-msvideo" />
<enclosure url="http://www.proyecto-f.net/wp-content/plugins/download-monitor/download.php?id=7" length="91286668" type="video/x-msvideo" />
		</item>
		<item>
		<title>webtips 04: Optimizar la carga de una página web 1/2</title>
		<link>http://www.proyecto-f.net/2009/06/webtips-04-optimizar-la-carga-de-una-pagina-web-12/</link>
		<comments>http://www.proyecto-f.net/2009/06/webtips-04-optimizar-la-carga-de-una-pagina-web-12/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 21:29:36 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[videotutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=248</guid>
		<description><![CDATA[Cuarta entrega de webtips. En esta ocasión vamos a ver algunos consejos para agilizar la carga de nuestro proyecto web, tanto del lado de el servidor como de el cliente.
Aquí tenéis la primera parte de el vídeo, 24 minutos. Mañana pondré la segunda, 20 minutos más.
El audio &#8220;rasca&#8221; un poco, definitivamente tengo que hacerme con [...]]]></description>
			<content:encoded><![CDATA[<p>Cuarta entrega de webtips. En esta ocasión vamos a ver algunos consejos para agilizar la carga de nuestro proyecto web, tanto del lado de el servidor como de el cliente.</p>
<p>Aquí tenéis la primera parte de el vídeo, 24 minutos. Mañana pondré la segunda, 20 minutos más.</p>
<p>El audio &#8220;rasca&#8221; un poco, definitivamente tengo que hacerme con un micrófono nuevo que con este no me las arreglo. Tenéis los enlaces a las páginas vistas en el tutorial así como la descarga del vídeo completo en &#8220;leer más/read more&#8221;.</p>
<p><object width="456" height="365"><param name="movie" value="http://www.youtube.com/p/29E7719BCCD41110&amp;hl=es&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/p/29E7719BCCD41110&amp;hl=es&amp;fs=1" type="application/x-shockwave-flash" width="456" height="365" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><span id="more-248"></span></p>
<p>Enlaces a proyectos mencionados en el tutorial:</p>
<p><a title="Sistema de cache para PHP" href="http://es2.php.net/apc">Apc</a><br />
Sistema de cache para php que nos permite reducir la carga y ejecución de nuestro proyectos PHP sin cambiar una sola linea de código. Ver proceso de instalación en windows <a title="proceso instalación de apc en windows" href="http://docs.moodle.org/en/Installing_APC_in_Windows">aquí</a>.</p>
<p><a title="Extensión para el firefox" href="http://developer.yahoo.com/yslow/">Yslow</a><br />
Extensión para el firefox/firebug que analiza nuestro proyecto web en busca de &#8220;cuellos de botella&#8221; que ralenticen la carga de nuestro site.</p>
<p><a title="web site de akamai en castellano" href="http://spanish.akamai.com/">Akamai</a><br />
El website de akamai en castellano</p>
<p><a title="amazon s3" href="http://aws.amazon.com/s3/">Amazon s3</a><br />
Website de el servicio de almacenamiento distribuido de amazon, sin duda uno de los más populares hoy en día.</p>
<p>&#8212;&#8212;-</p>
<p><a title="video tutorial webtips 04" href="http://www.proyecto-f.net/wp-content/plugins/download-monitor/download.php?id=6">descargar el vídeo</a></p>
<p><strong>Nota:</strong> El vídeo hace uso del codec H264. Si tienes algún problema para reproducirlo usa el <a href="http://www.videolan.org/vlc/" title="vlc media player">vlc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/06/webtips-04-optimizar-la-carga-de-una-pagina-web-12/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://www.proyecto-f.net/wp-content/plugins/download-monitor/download.php?id=6" length="150311248" type="video/x-msvideo" />
		</item>
		<item>
		<title>lo mejor de la semana en la red</title>
		<link>http://www.proyecto-f.net/2009/06/lo-mejor-de-la-semana-en-la-red-4/</link>
		<comments>http://www.proyecto-f.net/2009/06/lo-mejor-de-la-semana-en-la-red-4/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 23:34:13 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[artículos]]></category>
		<category><![CDATA[enlaces rapidos]]></category>
		<category><![CDATA[bing]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[eyeos]]></category>
		<category><![CDATA[ilusiones opticas]]></category>
		<category><![CDATA[japon]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[profiler]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=215</guid>
		<description><![CDATA[Esta semana los grandes titulares se los han repartido Microsoft y Google. Microsoft lanzaba bing y Google anunciaba el desarrollo de wave, de todas formas creo que voy a dejar estas joyas para un post aparte porque tienen miga.
Al margen de wave, google hacia algunos movimientos que probablemente marquen la estrategia a futuro de esta [...]]]></description>
			<content:encoded><![CDATA[<p>Esta semana los grandes titulares se los han repartido Microsoft y Google. Microsoft lanzaba <a title="nuevo buscador de MS" href="http://www.bing.com/">bing</a> y Google anunciaba el desarrollo de <a title="email social de google" href="http://wave.google.com/">wave</a>, de todas formas creo que voy a dejar estas joyas para un post aparte porque tienen miga.</p>
<p>Al margen de wave, google hacia algunos movimientos que probablemente marquen la estrategia a futuro de esta empresa en lo relativo a su navegador Chrome. La empresa esta empeñada en hacerse con un pellizco de el mercado, los anuncios que encontramos en el buscador o youtube son sin duda la campaña de marketing más agresiva realizada hasta ahora por la compañía, al menos que yo recuerde. </p>
<p>Y no queda ahí la cosa, en estados unidos lanzaron una campaña televisiva compuesta por 11 anuncios que también podemos ver en <a title="canal chrome youtube" href="http://www.youtube.com/user/googlechrome">youtube</a>. Algunos de estos anuncios hacen sutiles <a title="google ataca firefox en anuncio tv" href="http://regeditexe.com/2009/05/30/google-ataca-a-firefox-con-11-anuncios-en-television/">referencias a firefox</a> y queda claro que la luna de miel vivida entre mozilla y google murió con la llegada de Chrome.</p>
<p>Recordemos que google ha sido durante años quien más fuerte a apoyado a mozilla en su lucha contra internet explorer, convirtiéndose en su principal fuente de ingresos a cambio de acuerdos puntuales (ser el buscador por defecto, etc). El contrato sigue aún vigente y no caduca hasta 2011, pero ya no es lo que era&#8230;</p>
<p><a title="fecha oficial windows 7" href=" http://www.genbeta.com/windows/windows-7-para-el-22-de-octubre">Microsoft por su parte pone la fecha oficial para el lanzamiento de windows 7</a><br />
El 22 de octubre de este año llega la nueva versión de el sistema operativo más usado del mundo en el que empresa (y usuarios) tienen puestas grandes esperanzas después de la poca aceptación de vista.</p>
<p><span id="more-215"></span>También se han dado a conocer algunos detalles sobre la versión <a title="win 7 started edition" href="http://www.genbeta.com/windows/microsoft-confirma-que-windows-7-starter-no-permitira-cambiar-el-fondo-de-pantalla">started edition</a> , orientada a mercados emergentes, que elimina algunas restricciones pero mantiene limitaciones tan absurdas como no poder cambiar el fondo de escritorio&#8230; en fin&#8230;</p>
<p>Dejando a un lado estos monstruos ,¿Monopolios?, de las nuevas tecnologías y retomando un poco la linea habitual de estos posts tenemos:</p>
<p><a title="SO online" href="http://www.creacionempresa.es/startups-eyeos/">Artículo sobre eyeos</a><br />
La empresa catalana, una de las startups más sonadas de España, y su producto estrella es un sistema operativo/ escritorio virtual<br />
de lo mas completo, de código abierto y gratuito. Podéis probarlo <a title="eyeos" href="http://eyeos.org/es/">aquí</a></p>
<p><a title="php quick profiler" href="http://github.com/danmorin/php-quick-profiler-for-codeigniter/tree/master">Php quick profiler para codeigniter</a><br />
Php Quick profiler es una maravilla con la que no se encuentra uno todos los días (<a title="demo php quick profiler" href="http://particletree.com/features/php-quick-profiler/">ver demo</a>). Si bien el framework de php <a title="el framework php más completo que he usado" href="http://codeigniter.com/">codeigniter</a> ya cuenta con un profiler bastante potente esta semana se anunciaba una adaptación de PQP lista para echar a andar con codeigniter. Yo aun no lo he podido probar, pero hay ganas, a ver si esta semana saco algo de tiempo para integrarlo en mis proyectos php.</p>
<p>Y para terminar un poco de offtopic:</p>
<p><a title="ilusiones opticas" href="http://aquifoto.blogspot.com/2009/05/akiyoshi-kitaoka.html">Ilusión ópticas con aplicación científica</a><br />
El profesor de psicología de la Universidad Ritsumeikan de Kioto, el japonés Akiyoshi Kitaoka, ha sacado unas ilusiones ópticas que, se supone, miden tu grado de descanso. Yo ahora mismo los veo con un baile que da miedo, pero bueno, son casi las 2 de la mañana y estoy deseando pillar la cama <img src='http://www.proyecto-f.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  así que lo mismo es verdad lo de las imágenes estas.</p>
<p><a title="tokyo" href="http://www.ajapon.com/sociedad/callejeros-viajeros-tokio/">Callejeros viajeros: tokyo</a><br />
Esto es de largo lo más offtopic que he puesto nunca en el blog, pero haciendo caso de el lema del site &#8220;Desarollo web, edición de video y lo que surja&#8221; ya tocaba poner algo para esa tercera categoría. Y nada&#8230; reportaje emitido en la tv española sobre japon &#8211; tokyo, país al que por cierto le tengo ganas (a ver cuando me dejo caer por aquellos lares), a ver si os gusta <img src='http://www.proyecto-f.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/06/lo-mejor-de-la-semana-en-la-red-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lo mejor de la semana en la red</title>
		<link>http://www.proyecto-f.net/2009/05/lo-mejor-de-la-semana-en-la-red-2/</link>
		<comments>http://www.proyecto-f.net/2009/05/lo-mejor-de-la-semana-en-la-red-2/#comments</comments>
		<pubDate>Tue, 12 May 2009 22:24:43 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[enlaces rapidos]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mininova]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[piratebay]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=116</guid>
		<description><![CDATA[Mininova empieza a aplicar filtros a los torrents
El miedo a ser denunciado tras el juicio a piratebay crece entre los distintos trackers.
Mientras tanto el fundador de Pirate Bay nos vuelve a sorprender sacándose de la manga el ataque DDo$.
Ha pedido a la comunidad que le ayuden a pagar los $30 millones de multa que le [...]]]></description>
			<content:encoded><![CDATA[<p><a title="mininova aplica filtros a torrents" href="http://www.genbeta.com/web/ya-funciona-el-filtrado-en-mininova">Mininova empieza a aplicar filtros a los torrents</a><br />
El miedo a ser denunciado tras el juicio a piratebay crece entre los distintos trackers.</p>
<p>Mientras tanto el fundador de Pirate Bay nos vuelve a sorprender sacándose de la manga el ataque <a title="ayuda pirate bay" href="http://meneame.net/story/fundador-pirate-bay-pide-ayuda-para-pagar-30-millones-enviando">DDo$</a>.<br />
Ha pedido a la comunidad que le ayuden a pagar los $30 millones de multa que le impusieron enviando cantidades de 13 céntimos USD a la firma de abogados encargada de cobrar la multa. La firma tendrá que pagar al banco un recargo por cada transacción, lo que representará una perdida de dinero mayor que la cantidad recaudada. Qué grande eres Svartholm, qué grande <img src='http://www.proyecto-f.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a title="tips seo yahoo" href="http://www.vivaphp.com.ar/articulos/16-tips-seo">16 Tips SEO de un empleado de Yahoo!</a><br />
Interesante articulo para aquellos que tengáis vuestra propia web</p>
<p><a title="time zone from latitude longitude" href="http://sentidoweb.com/2009/05/11/obtener-el-huso-horario-mediante-la-latitud-y-la-longitud-en-php.php">Obtener el uso horario mediante la latitud y la longitud en PHP</a><br />
Hace uso de <a href="http://code.google.com/apis/maps/">la API de google maps</a> y <a href="http://www.geonames.org/export/web-services.html">geonames.org</a>. Ofrece además el código PHP y  javascript (Mootools).</p>
<p><a title="firefox 3.6 abandonara windows 2000" href="http://www.vivaphp.com.ar/soft/firefox-3.6-abandonaria-a-windows-2000">Firefox 3.6 podría abandonar a Windows 2000</a><br />
Microsoft ya no vende Windows 2000 y su soporte oficial terminará en Julio del próximo año. De abandonarlo se reduciría la complejidad del código de Firefox</p>
<p><a title="cubos 3d css" href="http://www.anieto2k.com/2009/05/08/cubos-3d-usando-css-transformations/">Cubos 3D usando CSS Transformations</a><br />
La futura especificación CSS3 promete y mucho. Aquí tenéis un pequeño adelanto, que por el momento únicamente funciona sobre Safari, Chrome y Firefox 3.5</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/05/lo-mejor-de-la-semana-en-la-red-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lo mejor de la semana en la red</title>
		<link>http://www.proyecto-f.net/2009/05/lo-mejor-de-la-semana-06052009/</link>
		<comments>http://www.proyecto-f.net/2009/05/lo-mejor-de-la-semana-06052009/#comments</comments>
		<pubDate>Tue, 05 May 2009 22:36:52 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[enlaces rapidos]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[pirata]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=48</guid>
		<description><![CDATA[7 diferencias javascript entre firefox e internet explorer
Interesante referencia para aquellos que no hagan uso de ningún framework js
Aplicaciones de escritorio en php
Introducción a php-gtk
Crea tus propios diseños css desde 0
960 Grid System, photoshop y un poco de paciencia
Presentaciones de la ultima MySql Conference &#38; Expo 2009
Optimizaciones, clusters, mejoras de rendimiento, etc
Mootools file manager
Curradísimo script [...]]]></description>
			<content:encoded><![CDATA[<p><a title="7 direferencias javascript" href="http://www.anieto2k.com/2009/04/29/7-diferencias-javascript-entre-firefox-e-internet-explorer/">7 diferencias javascript entre firefox e internet explorer</a><br />
Interesante referencia para aquellos que no hagan uso de ningún framework js</p>
<p><a href="http://es.debugmodeon.com/articulo/php-en-el-escritorio-y-php-gtk">Aplicaciones de escritorio en php</a><br />
Introducción a php-gtk</p>
<p><a href="http://net.tutsplus.com/tutorials/html-css-techniques/design-a-beautiful-website-from-scratch/">Crea tus propios diseños css desde 0</a><br />
960 Grid System, photoshop y un poco de paciencia</p>
<p><a href="http://highscalability.com/presentations-mysql-conference-expo-2009">Presentaciones de la ultima MySql Conference &amp; Expo 2009</a><br />
Optimizaciones, clusters, mejoras de rendimiento, etc</p>
<p><a href="http://www.webappers.com/2009/05/02/preview-upload-modify-files-folders-with-filemanager/">Mootools file manager</a><br />
Curradísimo script para mootools que permite subir,ver y modificar tus ficheros vía browser</p>
<p><a href="http://www.linux-party.com//modules.php?name=News&amp;file=article&amp;sid=4485">Linux llega al 1% de cuota de mercado y Mac OS roza el 10%</a><br />
Informe del mes de abril de NetApplications</p>
<p><a href="http://www.theinquirer.es/2009/05/02/el-partido-pirata-sueco-en-el-parlamento-europeo.html">El Partido Pirata sueco en el Parlamento Europeo</a><br />
Un sondeo revela que obtendría los votos necesarios para contar con un escaño en el Parlamento Europeo</p>
<p><a href="http://www.securitybydefault.com/2009/05/blogs-interesantes-sobre-seguridad.html">Blogs interesantes sobre seguridad</a><br />
Recopilación de los mejores blogs de dicha temática (phising, bugs&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/05/lo-mejor-de-la-semana-06052009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lo mejor de la semana en la red</title>
		<link>http://www.proyecto-f.net/2009/04/lo-mejor-de-la-semana-en-la-red-29-04-09/</link>
		<comments>http://www.proyecto-f.net/2009/04/lo-mejor-de-la-semana-en-la-red-29-04-09/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 22:16:40 +0000</pubDate>
		<dc:creator>flmn</dc:creator>
				<category><![CDATA[enlaces rapidos]]></category>
		<category><![CDATA[geolocalización]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[openCL]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sun]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.proyecto-f.net/?p=32</guid>
		<description><![CDATA[
GPGPU en Snow Leopard
OpenCL será integrado en el core del próximo Mac OS X
MySQL 5.4 Preview
Se espera que llegue a finales de año o principio del año próximo
Ubuntu 9.04 release
Importantes mejoras de rendimiento para la distro más popular del panorama actual
Oracle se hace con Sun
Y  hace suyos java, mysql, virtualbox etc.
Php quick profiler
El firebug [...]]]></description>
			<content:encoded><![CDATA[<p><a title="OpenCL en Mac OS X" href="http://www.theinquirer.es/2009/04/27/gpgpu-en-snow-leopard.html"><br />
GPGPU en Snow Leopard</a><br />
OpenCL será integrado en el core del próximo Mac OS X</p>
<p><a title="mysql 5.4" href="http://www.vivalinux.com.ar/soft/mysql-5.4-preview.html">MySQL 5.4 Preview</a><br />
Se espera que llegue a finales de año o principio del año próximo</p>
<p><a title="Ubuntu 9.04" href="http://www.vivalinux.com.ar/distros/ubuntu-9.04-jaunty-jackalope.html">Ubuntu 9.04 release</a><br />
Importantes mejoras de rendimiento para la distro más popular del panorama actual</p>
<p><a title="miedo me da..." href="http://www.tod-os.es/oracle-compra-sun">Oracle se hace con Sun</a><br />
Y  hace suyos java, mysql, virtualbox etc.</p>
<p><a title="El firebug de php" href="http://www.webappers.com/2009/04/25/php-quick-profiler-firebug-for-php/">Php quick profiler</a><br />
El firebug de php</p>
<p><a title="geolocalizacion con javascript" href="http://sentidoweb.com/2009/04/13/geolocalizacion-por-ip-mediante-javascript-y-json.php">Geolocalización por IP mediante Javascript y JSON</a><br />
geolocalización con javascript</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proyecto-f.net/2009/04/lo-mejor-de-la-semana-en-la-red-29-04-09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

