<?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>ingeniuz :: desarrollo web útil &#187; Programacion PHP</title>
	<atom:link href="http://www.ingeniuz.com/category/programacion-php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ingeniuz.com</link>
	<description>Blog personal de Manuel Cebrián</description>
	<lastBuildDate>Sun, 05 Feb 2012 12:11:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Headers, PHP, Archivo zip e Internet Explorer</title>
		<link>http://www.ingeniuz.com/2011/03/29/headers-php-archivo-zip-e-internet-explorer/</link>
		<comments>http://www.ingeniuz.com/2011/03/29/headers-php-archivo-zip-e-internet-explorer/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 17:17:29 +0000</pubDate>
		<dc:creator>manuel</dc:creator>
				<category><![CDATA[Programacion PHP]]></category>

		<guid isPermaLink="false">http://www.ingeniuz.com/?p=475</guid>
		<description><![CDATA[Para que no se me olvide porque me ha costado un montón de tiempo llegar a esta solución y por si a alguien le sirve: if (strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE')) { header("Content-type: application/zip"); } else { header("Content-type: application/octet-stream"); } header("Content-disposition: attachment; filename=\"documentos.zip\""); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0,pre-check=0"); header("Pragma: public"); // Sin esto el IE no funciona // [...]]]></description>
			<content:encoded><![CDATA[<p>Para que no se me olvide porque me ha costado un montón de tiempo llegar a esta solución y por si a alguien le sirve:</p>
<p><code><br />
if (strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE')) {<br />
header("Content-type: application/zip");<br />
} else {<br />
header("Content-type: application/octet-stream");<br />
}<br />
header("Content-disposition: attachment; filename=\"documentos.zip\"");<br />
header("Expires: 0");<br />
header("Cache-Control: must-revalidate, post-check=0,pre-check=0");<br />
header("Pragma: public"); // Sin esto el IE no funciona</code></p>
<p><code> </code></p>
<p><code> // cargar el archivo a enviar<br />
readfile($zipname);<br />
</code></p>
<p>Este es el código para enviar un archivo zip para su descarga. En mi caso, este script genera ese archivo .zip a partir de unos documentos y una vez generado, lo envía al navegador para su descarga.</p>
<p>Como siempre, todo funcionaba correctamente hasta que lo probé en Internet Explorer&#8230; Y tras mucho &#8220;goglear&#8221; y probar combinaciones, esta ha sido la que me ha funcionado en todos los navegadores.</p>
<p>Y además, aprovecho para escribir algo en el blog que con tanto Twitter y tanto Facebook está &#8220;abandonao&#8221; :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ingeniuz.com/2011/03/29/headers-php-archivo-zip-e-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probando PHP 5.3.3</title>
		<link>http://www.ingeniuz.com/2010/07/23/probando-php-5-3-3/</link>
		<comments>http://www.ingeniuz.com/2010/07/23/probando-php-5-3-3/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 11:32:44 +0000</pubDate>
		<dc:creator>manuel</dc:creator>
				<category><![CDATA[Estadisticas]]></category>
		<category><![CDATA[Programacion PHP]]></category>

		<guid isPermaLink="false">http://www.ingeniuz.com/?p=423</guid>
		<description><![CDATA[Como muchos ya sabréis PHP liberó ayer la versión 5.3.3. Entre otras mejoras, la que más me interesaba  y que llevaba esperando desde la 5.3 era: - Added FastCGI Process Manager (FPM) SAPI. En varios servidores estábamos usando PHP 5.3 con el parche de PHP-FPM, pero habíamos detectado varios errores que nos afectaban en la [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-424" style="margin: 0 15px 15px 0;" title="php" src="http://www.ingeniuz.com/wp-content/uploads/2010/07/php.gif" alt="" width="120" height="67" />Como muchos ya sabréis <a href="http://www.php.net/archive/2010.php#id2010-07-22-2">PHP liberó ayer la versión 5.3.3</a>. Entre otras mejoras, la que más me interesaba  y que llevaba esperando desde la 5.3 era:</p>
<p>- Added FastCGI Process Manager (FPM) SAPI.</p>
<p>En varios servidores estábamos usando PHP 5.3 con el parche de <a href="http://php-fpm.org/">PHP-FPM</a>, pero habíamos detectado varios errores que nos afectaban en la estabilidad del sistema, por lo que estábamos deseando pasar a la nueva versión.</p>
<p>Al enterarme de que el parche sería incluído en la rama oficial de PHP decidí no actualizar hasta que apareciera la versión estable que lo incluyera&#8230; y ese día fue ayer :)</p>
<p>Después de compilar (actualizando antes libevent) y comprobar que no había problemas de incompatibilidades con nuestro software, realicé varias pruebas con el Apache Benchmark (ab) y los resultados no están nada mal:<br />
<code>Document Path:          /<br />
Document Length:        6699 bytes</code></p>
<p><code>Concurrency Level:      10<br />
Time taken for tests:   10.002 seconds<br />
Complete requests:      499<br />
Failed requests:        0<br />
Write errors:           0<br />
Total transferred:      3549886 bytes<br />
HTML transferred:       3342801 bytes<br />
Requests per second:    49.89 [#/sec] (mean)<br />
Time per request:       200.446 [ms] (mean)<br />
Time per request:       20.045 [ms] (mean, across all concurrent requests)<br />
Transfer rate:          346.59 [Kbytes/sec] received</code></p>
<p><code>Connection Times (ms)<br />
min  mean[+/-sd] median   max<br />
Connect:       54   61   6.4     59     101<br />
Processing:   126  138   9.8    137     206<br />
Waiting:       66   75   9.1     73     146<br />
Total:        181  199  10.5    198     273</code></p>
<p><code> </code></p>
<p><code>Percentage of the requests served within a certain time (ms)<br />
50%    198<br />
66%    201<br />
75%    204<br />
80%    205<br />
90%    208<br />
95%    214<br />
98%    232<br />
99%    250<br />
100%    273 (longest request)<br />
</code></p>
<p>En general el tiempo de respuesta ha bajado unos 600ms de media, lo cual no está nada nada mal :)</p>
<p>Ahora sólo nos queda tener suficiente tráfico como para que todo esto se note realmente :P</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ingeniuz.com/2010/07/23/probando-php-5-3-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Málaga Verde</title>
		<link>http://www.ingeniuz.com/2009/09/25/malaga-verde/</link>
		<comments>http://www.ingeniuz.com/2009/09/25/malaga-verde/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 08:43:16 +0000</pubDate>
		<dc:creator>manuel</dc:creator>
				<category><![CDATA[Programacion PHP]]></category>
		<category><![CDATA[Proyectos]]></category>

		<guid isPermaLink="false">http://www.ingeniuz.com/?p=379</guid>
		<description><![CDATA[El Área de Medio Ambiente del Ayuntamiento de Málaga, estrena nueva web de la mano de takeone.es. Mi parte además de la maquetación XHTML+CSS ha consistido en desarrollar un CMS a medida para la completa gestión de toda la información presente en la web. PHP5 y el Zend Framework me han echado una mano ;)]]></description>
			<content:encoded><![CDATA[<p>El <a href="http://www.malagaverde.eu">Área de Medio Ambiente del Ayuntamiento de Málaga</a>, estrena nueva web de la mano de <a title="Estudio de diseño en Málaga" href="http://www.takeone.es">takeone.es</a>.</p>
<p><a href="http://www.malagaverde.eu"><img class="aligncenter size-full wp-image-380" title="malagaverde" src="http://www.ingeniuz.com/wp-content/uploads/2009/09/malagaverde.jpg" alt="malagaverde" width="450" height="400" /></a></p>
<p>Mi parte además de la maquetación XHTML+CSS ha consistido en desarrollar un CMS a medida para la completa gestión de toda la información presente en la web. PHP5 y el Zend Framework me han echado una mano ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ingeniuz.com/2009/09/25/malaga-verde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TYPOlight Interesante CMS Open Source</title>
		<link>http://www.ingeniuz.com/2009/05/14/typolight-interesante-cms-open-source/</link>
		<comments>http://www.ingeniuz.com/2009/05/14/typolight-interesante-cms-open-source/#comments</comments>
		<pubDate>Thu, 14 May 2009 14:52:21 +0000</pubDate>
		<dc:creator>manuel</dc:creator>
				<category><![CDATA[Programacion PHP]]></category>
		<category><![CDATA[usabilidad]]></category>
		<category><![CDATA[Varios]]></category>

		<guid isPermaLink="false">http://www.ingeniuz.com/?p=349</guid>
		<description><![CDATA[Acabo de encontrarme con TYPOlight y he quedado gratamente impresionado. Se trata de un gestor de contenidos (CMS) open source desarrollado en PHP 5 que destaca por su flexibilidad y potencia, pero sobretodo por la importancia que dá a la accesibilidad y a la generación de código basado en los estándares W3C. Podeis ver una [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-350" style="margin:0 15px 15px 0" title="logo" src="http://www.ingeniuz.com/wp-content/uploads/2009/05/logo.gif" alt="logo" width="167" height="45" />Acabo de encontrarme con <a href="http://www.typolight.org/">TYPOlight</a> y he quedado gratamente impresionado.</p>
<p>Se trata de un gestor de contenidos (CMS) open source desarrollado en PHP 5 que destaca por su flexibilidad y potencia, pero sobretodo por la importancia que dá a la accesibilidad y a la generación de código basado en los estándares W3C.</p>
<p>Podeis ver una <a href="http://demo.typolight.org/typolight/">demo</a> o unas <a href="http://www.typolight.org/screenshots.html">capturas de pantalla</a> en su <a href="http://www.typolight.org/">sitio web</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ingeniuz.com/2009/05/14/typolight-interesante-cms-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redis, el ferrari de las bases de datos</title>
		<link>http://www.ingeniuz.com/2009/03/11/redis-el-ferrari-de-las-bases-de-datos/</link>
		<comments>http://www.ingeniuz.com/2009/03/11/redis-el-ferrari-de-las-bases-de-datos/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 21:52:59 +0000</pubDate>
		<dc:creator>manuel</dc:creator>
				<category><![CDATA[bases de datos]]></category>
		<category><![CDATA[Programacion PHP]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[redis]]></category>

		<guid isPermaLink="false">http://www.ingeniuz.com/?p=333</guid>
		<description><![CDATA[Redis es una base de datos basada en clave/valor al estilo memcached, pero en la que sus datos son también guardados en disco, pudiendo usarla como reemplazo para MySQL y similares. Está escrita en C y una de sus principales peculiaridades es su increíble velocidad, que en algunas pruebas le han llevado a marcar cifras [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/redis/"><img class="alignleft size-full wp-image-334" title="redis" src="http://www.ingeniuz.com/wp-content/uploads/2009/03/redis.png" alt="redis" width="108" height="82" />Redis</a> es una base de datos basada en clave/valor al estilo memcached, pero en la que sus datos son también guardados en disco, pudiendo usarla como reemplazo para MySQL y similares.</p>
<p>Está escrita en C y una de sus principales peculiaridades es su increíble velocidad, que en algunas pruebas le han llevado a marcar cifras como 110,000 operaciones SET  y  81,000 GETs por segundo en un ordenador básico con Linux.</p>
<p>Salvatore Sanfilippo, el creador de Redis, ha implementado un clon de Twitter para mostrar cómo se puede usar su base de datos desde PHP como reemplazo de MySQL y otras bases de datos y lo ha llamado <a href="http://retwis.antirez.com/">Retwis</a>. Según ha comentado, en breve escribirá un artículo para explicar al detalle el desarrollo de esta aplicación.</p>
<p><strong>Redis</strong> (REmote DIctionary Server) , aunque aún en un estado muy prematuro de desarrollo, podría llegar a convertirse en alternativa para muchos proyectos que no necesitan de complejas estructuras de datos, pero si de cortos tiempos de respuesta ante elevadas cargas de tráfico.</p>
<p>Sin duda entran ganas de probarla. A mí se me ocurre más de un proyecto al que le vendría de perilla.</p>
<p>Vía <a href="http://antoniocangiano.com/2009/03/11/introducing-redis-a-key-value-database/">Zend and the Art of Programming</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ingeniuz.com/2009/03/11/redis-el-ferrari-de-las-bases-de-datos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Usa las ETags en tu proyecto</title>
		<link>http://www.ingeniuz.com/2008/11/20/usa-las-etags-en-tu-proyecto/</link>
		<comments>http://www.ingeniuz.com/2008/11/20/usa-las-etags-en-tu-proyecto/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 10:52:03 +0000</pubDate>
		<dc:creator>manuel</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Programacion PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.ingeniuz.com/2008/11/20/usa-las-etags-en-tu-proyecto/</guid>
		<description><![CDATA[Y no sólo porque lo diga Yahoo! sino porque te ahorrán tiempo y dinero. Harán que tu servidor sea capaz de procesar más peticiones y que estas sean más rápidas. Últimamente y a medida que mis sitios web están ganando en visitas, estoy muy interesado en el tema de la optimización de los proyectos web y poco [...]]]></description>
			<content:encoded><![CDATA[<p>Y no sólo porque <a href="http://developer.yahoo.com/performance/rules.html#etags">lo diga Yahoo!</a> sino porque te ahorrán tiempo y dinero. Harán que tu servidor sea capaz de procesar más peticiones y que estas sean más rápidas.</p>
<p>Últimamente y a medida que mis sitios web están ganando en visitas, estoy muy interesado en el tema de la optimización de los proyectos web y poco a poco, voy incorporando varias técnicas que incorporo en la fase final del desarrollo.Una de ellas es la de añadir ETag para los proyectos web que generan contenido dinámico.</p>
<p>La mayoría de los sitios web con contenido dinámico no están continuamente cambiando el contenido, sino que éste es modificado en momentos muy puntuales. Todo el tiempo entre un cambio y otro, el contenido es el mismo y sin embargo, hacemos que el servidor vuelva a generarlo y a enviarlo al servidor como si fuera completamente nuevo.</p>
<p>Las ETags son unos identificadores que se envían al navegador para identificar el &#8220;estado&#8221; de una página dinámica o de un archivo estático. Son <a href="http://httpd.apache.org/docs/2.0/es/mod/core.html#fileetag">fácilmente configurables en Apache</a> para los archivos estáticos, pero pocas veces son usadas cuando el contenido es generado a partir de fuentes dinámicas.</p>
<p>Imaginemos el caso de este blog. Cada página es modificada únicamente cuando yo hago algún cambio desde el panel de control o cuando alguien deja/modifica un comentario. El resto del tiempo, el contenido de las páginas no varía.Podríamos por tanto identificar a cada página por su URL (p.ej.  &#8221;/2008/10/03/en-espana-se-vende-menos-que-se-compra/&#8221; ) y por la fecha en que fué actualizada. Si unimos ambas cosas, podríamos obtener un identificador único. Por ejemplo:</p>
<p><code>$etag = md5 ($_SERVER['REQUEST_URI'] . $last_modification_time);</code></p>
<p>Esa sería por lo tanto su Etag.  Y podríamos enviarla al navegador de la siguiente forma:</p>
<p><code>header("Etag: $etag");</code></p>
<p>El navegador, cada vez que pida esa página, enviará un header especial &#8220;If-None-Match&#8221; preguntando si es la misma página que ya le fué enviada la última vez. Con lo que antes de generar la página, podríamos comprobar:</p>
<p><code><br />
if (trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {<br />
header("HTTP/1.1 304 Not Modified");<br />
exit;<br />
}<br />
</code><br />
De esta forma, informaríamos al navegador de que la página no ha cambiado y por lo tanto no tendríamos necesidad de volver a generarla ni de enviarla por la red. Así ahorraríamos tiempo de proceso en el servidor (carga) y ancho de banda, además de ofrecer una mejor experiencia al usuario.</p>
<p>Por supuesto esta no es una solución válida para cualquier proyecto o situación ( en algunas puede ser incluso contraproducente ), pero si que supone una mejora en una gran parte de los desarrollos. Al menos así ha sido para mí ;)</p>
<p>En el Zend Framework también tenemos ya <a href="http://framework.zend.com/wiki/display/ZFPROP/Zend_Cache_Frontend_Page+Etag+support">una propuesta para usarlas</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ingeniuz.com/2008/11/20/usa-las-etags-en-tu-proyecto/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>De página web a entrada en Twitter</title>
		<link>http://www.ingeniuz.com/2008/10/06/de-pagina-web-a-entrada-en-twitter/</link>
		<comments>http://www.ingeniuz.com/2008/10/06/de-pagina-web-a-entrada-en-twitter/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 19:08:26 +0000</pubDate>
		<dc:creator>manuel</dc:creator>
				<category><![CDATA[Programacion PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.ingeniuz.com/2008/10/06/de-pagina-web-a-entrada-en-twitter/</guid>
		<description><![CDATA[El otro día estuve probando algunos de los componentes que el Zend Framework tiene aún en la incubadora o como simples propuestas. Entre ellos, encontré el Zend_Service_Twitter y se me ocurrió una idea. Desde hace tiempo, sigo la web del equipo de Cárpatos en www.serenitymarkets.com y siempre he echado en falta el que dispusiera de [...]]]></description>
			<content:encoded><![CDATA[<p>El otro día estuve probando algunos de los componentes que el Zend Framework tiene aún en la incubadora o como simples propuestas. Entre ellos, encontré el <a href="http://framework.zend.com/wiki/display/ZFPROP/Zend_Service_Twitter">Zend_Service_Twitter</a> y se me ocurrió una idea.</p>
<p>Desde hace tiempo, sigo la web del equipo de Cárpatos en www.serenitymarkets.com y siempre he echado en falta el que dispusiera de un feed para poder seguirlo con mi agregador. Pero además, viendo la frecuencia de actualización, se me ocurrió pensar que es prácticamente lo mismo que lo que ocurre en una cuenta Twitter, donde se va contando minuto a minuto lo que va pasando en los mercados financieros.</p>
<p>Gracias al ZF, pasé del dicho al hecho en poco más de 1 hora. Convertí el html de su web en un documento DOM y con ese documento, <a href="http://www.ingeniuz.com/carpatos">creé un Feed</a> (Zend_Feed_Builder) y con el Zend_Service_Twitter hice que cada vez que aparecía una entrada nueva, esta se publicara en una cuenta de Twitter ( <a href="http://twitter.com/carpatos">twitter.com/carpatos</a> ).</p>
<p>No todo puede ser trabajo, de vez en cuando toca divertirse un ratito :)</p>
<p>Hay mucha gente que defiende que en PHP se pueden crear grandes aplicaciones sin necesidad de Frameworks. Yo estoy con ellos, creo que los frameworks no son necesarios, pero si son útiles. En algunos casos, muy útiles, ya que te ayudan a realizar tu trabajo en mucho menos tiempo y a realizar tareas muy complejas con unas pocas líneas de código.</p>
<p><strong>Actualización</strong>: En este momento he tenido que cerrarlo por algunas razones que ya revelaré más adelante ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ingeniuz.com/2008/10/06/de-pagina-web-a-entrada-en-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crear un nuevo proyecto con Zend_Tool</title>
		<link>http://www.ingeniuz.com/2008/09/03/crear-un-nuevo-proyecto-con-zend_tool/</link>
		<comments>http://www.ingeniuz.com/2008/09/03/crear-un-nuevo-proyecto-con-zend_tool/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 13:59:30 +0000</pubDate>
		<dc:creator>manuel</dc:creator>
				<category><![CDATA[Programacion PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.ingeniuz.com/2008/09/03/crear-un-nuevo-proyecto-con-zend_tool/</guid>
		<description><![CDATA[Una de las herramientas interesantes que vienen con el Zend Framework 1.6 es Zend_Tool. Se trata básicamente de una utilidad para automatizar la creación de carpetas/documentos iniciales en un proyecto (al estilo ruby on rails). Es bastante interesante porque te ahorra bastante tiempo y te ayuda a que tus proyectos sean más &#8220;estándar&#8221;. Teneis un [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las herramientas interesantes que vienen con el Zend Framework 1.6 es Zend_Tool. Se trata básicamente de una utilidad para automatizar la creación de carpetas/documentos iniciales en un proyecto (al estilo ruby on rails).</p>
<p>Es bastante interesante porque te ahorra bastante tiempo y te ayuda a que tus proyectos sean más &#8220;estándar&#8221;.</p>
<p>Teneis un artículo con ejemplo incluído en la Zend Developer Zone: <a href="http://devzone.zend.com/article/3811-Using-Zend_Tool-to-start-up-your-ZF-Project">Using Zend_Tool to start up your ZF project</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ingeniuz.com/2008/09/03/crear-un-nuevo-proyecto-con-zend_tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disponible la versión 1.6 del Zend Framework</title>
		<link>http://www.ingeniuz.com/2008/09/02/disponible-la-version-16-del-zend-framework/</link>
		<comments>http://www.ingeniuz.com/2008/09/02/disponible-la-version-16-del-zend-framework/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 20:59:01 +0000</pubDate>
		<dc:creator>manuel</dc:creator>
				<category><![CDATA[Programacion PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.ingeniuz.com/2008/09/02/disponible-la-version-16-del-zend-framework/</guid>
		<description><![CDATA[Desde hace unas horas, ya tenemos disponible la nueva versión del Zend Framework.Aunque muchos llevamos ya bastante tiempo usándola, es un buen momento para descargarla y actualizar nuestras aplicaciones ya que se han cerrado más de 270 bugs. Los nuevos componentes: Zend_Tool Lucene 2.3 Index File Format Support Zend_Session save handler for Database Tables Paginator Component Figlet [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace unas horas, ya tenemos <a href="http://devzone.zend.com/article/3812-Zend-Framework-1.6-Now-Available">disponible la nueva versión del Zend Framework</a>.Aunque muchos llevamos ya bastante tiempo usándola, es un buen momento para descargarla y actualizar nuestras aplicaciones ya que se han cerrado más de 270 bugs. Los nuevos componentes:<span class="Apple-style-span" style="color: #212431; font-family: Verdana; font-size: 12px; line-height: 18px">
<ul class="disc" style="list-style-type: none; margin-top: 20px; margin-right: 0px; margin-bottom: 20px; margin-left: 30px; padding: 0px">
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">Zend_Tool</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">Lucene 2.3 Index File Format Support</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">Zend_Session save handler for Database Tables</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">Paginator Component</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">Figlet Support</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">ReCaptcha Service</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">Captcha Form Element</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">Zend_Config_Xml Attribute Support</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">Zend_File_Transfer Component</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">File Upload Form Element</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: disc; margin-left: 20px; padding: 0px">Zend_Wildfire Component with FireBug Log Writer</li>
</ul>
<p></span>Sin duda, para mi el que más util ha sido hasta el momento ha sido el <a href="http://framework.zend.com/manual/en/zend.paginator.html" title="Zend Paginator">Zend_Paginator</a>, que me ha ayudado a simplificar y hacer mucho más agradable la repetitiva tarea de programar el sistema de paginación en los listados. Aunque ya estoy echándole un vistazo al nuevo <a href="http://framework.zend.com/manual/en/zend.file.html">Zend_File_Transfer</a>, que puede ayudarme a simplificar y mejorar la subida de archivos. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ingeniuz.com/2008/09/02/disponible-la-version-16-del-zend-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Convertir videos a FLV con PHP usando ffmpeg en CentOS con CPanel</title>
		<link>http://www.ingeniuz.com/2008/08/27/convertir-videos-a-flv-con-php-usando-ffmpeg-en-centos-con-cpanel/</link>
		<comments>http://www.ingeniuz.com/2008/08/27/convertir-videos-a-flv-con-php-usando-ffmpeg-en-centos-con-cpanel/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 08:33:42 +0000</pubDate>
		<dc:creator>manuel</dc:creator>
				<category><![CDATA[Programacion PHP]]></category>
		<category><![CDATA[Varios]]></category>

		<guid isPermaLink="false">http://www.ingeniuz.com/2008/08/27/convertir-videos-a-flv-con-php-usando-ffmpeg-en-centos-con-cpanel/</guid>
		<description><![CDATA[Desde hace relativamente poco tiempo y sobre todo a raíz del &#8220;efecto Youtube&#8221;, cada vez es más común encontrarnos con proyectos web 2.0 que permiten a los usuarios subir sus propios vídeos. Y por lo tanto también encontrarnos con el problema de la variedad de formatos. Hace ya tiempo que el formato FLV de flash [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace relativamente poco tiempo y sobre todo a raíz del &#8220;efecto Youtube&#8221;, cada vez es más común encontrarnos con proyectos web 2.0 que permiten a los usuarios subir sus propios vídeos. Y por lo tanto también encontrarnos con el problema de la variedad de formatos. Hace ya tiempo que el formato FLV de flash se convirtió en el lider indiscutible en Internet y por lo tanto es siempre la primera opción a la hora de abordar uno de estos proyectos. Pero&#8230; ¿cómo convierto los videos que han subido mis usuarios a FLV?</p>
<p>Esa es una buena pregunta, que afortunadamente tiene respuesta. Las herramientas necesarias:</p>
<p>- PHP 5<br />
- ffmpeg<br />
- Extensión ffmpeg-php<br />
- FLVTool2</p>
<p><img src="http://www.ingeniuz.com/wp-content/uploads/2008/08/ffmpeg-flv.gif" alt="Convertir video a FLV usando PHP" /></p>
<p>Voy a empezar relatando mi experiencia en la instalación de estas herramientas. En mi caso, en un servidor con Linux CentOS  y CPanel.</p>
<h3 style="margin-top: 0.8em">añadir repositorio Dag y Rpmforge:</h3>
<p style="padding-left: 15px"><code> vi /etc/yum.repos.d/dag.repo</code><br />
<code> </code>Pegar lo siguiente:<code><br />
[dag]<br />
name=Dag RPM Repository for Red Hat Enterprise Linux<br />
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag<br />
gpgcheck=1<br />
enabled=1<br />
</code></p>
<p>Añadir</p>
<p><code>/usr/local/lib</code></p>
<p>a</p>
<p><code>/etc/ld.so.conf</code></p>
<p>y ejecutar</p>
<p><code>ldconfig -v</code></p>
<p>Y luego:</p>
<p><code><br />
rpm -Uhv http://apt.sw.be/redhat/el4/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el4.rf.i386.rpm<br />
yum install ffmpeg ffmpeg-devel<br />
</code></p>
<h3>Instalar ffmpeg-php</h3>
<p>- descargarlo y seguir las instrucciones de <a href="http://ffmpeg-php.sourceforge.net/">http://ffmpeg-php.sourceforge.net/</a></p>
<p style="padding-left: 15px">Una vez instalado, deberemos añadir la línea:<code>extension="ffmpeg.so"</code></p>
<p>al php.ini (en mi servidor está en /usr/local/lib/php.ini, puedes ver dónde está en el tuyo con un phpinfo()  ).<br />
Luego reiniciamos Apache y con un phpinfo() podremos comprobar que lo tenemos correctamente cargado.</p>
<p><img src="http://www.ingeniuz.com/wp-content/uploads/2008/08/ffmpeg-php.gif" alt="ffmpeg php" /></p>
<h3>Instalar FLVTool2</h3>
<p style="padding-left: 15px"> &#8211; Descargar de http://inlet-media.de/flvtool2 .<br />
- Seguir las instrucciones del README (necesitarás tener instalado ruby. yum install ruby ).
</p>
<p>
Llegados este punto, tendríamos todas las herramientas necesarias instaladas en nuestro servidor. El siguiente paso, será crear el código PHP necesario para hacer funcionar la maquinaria. Pero eso lo dejo para un siguiente artículo ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ingeniuz.com/2008/08/27/convertir-videos-a-flv-con-php-usando-ffmpeg-en-centos-con-cpanel/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

