<?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>Servicios y Soluciones de Negocio, Sistemas de Información, Desarrollo Web, Marketing Online &#187; Web Php</title>
	<atom:link href="http://www.esviable.es/category/programacion/web-php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.esviable.es</link>
	<description>Servicios y Soluciones de Negocio, Sistemas de Información, Desarrollo Web, Marketing Online</description>
	<lastBuildDate>Sat, 22 May 2010 04:28:55 +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>Nueva versión de Xataface 1.2.4</title>
		<link>http://www.esviable.es/2010/05/22/nueva-version-de-xataface-1-2-4/</link>
		<comments>http://www.esviable.es/2010/05/22/nueva-version-de-xataface-1-2-4/#comments</comments>
		<pubDate>Sat, 22 May 2010 04:28:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Php]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[xataface]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=310</guid>
		<description><![CDATA[Ya podéis descargar la última versión de xataface, interesante framework para gestión de bases de datos, basado en php, mysql y smarty.
Me gustaría conocer cuales son las nuevas features de esta release, pero en la web del autor solo aparece este comentario:
&#8220;It has been a while since the last release of Xataface so I have [...]]]></description>
			<content:encoded><![CDATA[<p>Ya podéis descargar la última versión de xataface, interesante framework para gestión de bases de datos, basado en php, mysql y smarty.</p>
<p>Me gustaría conocer cuales son las nuevas features de esta release, pero en la web del autor solo aparece este comentario:<br />
&#8220;It has been a while since the last release of Xataface so I have released a bug fix release that includes all of the small changes that have accumulated over the past several months. This version includes better support for PHP 5.3 and fixes a lot of the small bugs and annoyances that have been pointed out in the forum.</p>
<p>There shouldn&#8217;t be any problem upgrading from 1.2.x as there aren&#8217;t any major changes here. Just stability improvements for the most part.&#8221;</p>
<p>Aprovechando el post, para todo aquel que tenga curiosidad por el funcionamiento de esta herramienta, describiré la instalación rapidamente:</p>
<ul>
<li>Descargamos la última release desde <a href="http://sourceforge.net/projects/dataface/files/">sourceforge</a></li>
<li>Damos permisos de escritura al directorio dataface/Dataface/templates_c para almacenar las plantillas compiladas</li>
<li>Verificamos que la instalación es correcta vía url http://tudominio.com/path/to/dataface/dataface_info.php</li>
<li>Ahora relacionamos la base de datos con xataface (es el momento de crear tu base de datos si no lo has hecho todavía)</li>
<li>Ejecuta el binario makesite que se encuentra en el directorio dataface:<br />
	       Uso: makesite: ./makesite app_path user:password@hostname/db_name dataface_url<br />
donde<br />
app_path -&gt; Ruta absoluta o relativa al directorio donde se encuentra la aplicación<br />
user -&gt; Usuario de mysql<br />
password -&gt; Password de mysql<br />
hostname -&gt; Nombre del host donde está la base de datos.<br />
db_name -&gt; Nombre de la base de datos.<br />
dataface_url -&gt; Url donde has instalado xataface</li>
</ul>
<p>Por ejemplo:</p>
<pre class="cpp">makesite ../Crm root:password@localhost/Crm /dataface
</pre>
<li>Ejecutando este comando crearíamos un sitio en .. /Crm (es decir, Crm como el directorio padre)<br />
La base de datos utilizada para este sitio está ubicado en localhost, y el nombre de la base de datos es Crm.</li>
<li>A continuación con este comando:
<pre class="cpp">./makesite ../Crm \root@localhost/Crm \http://localhost/tu_directorio/dataface
</pre>
</li>
<li>Crearemos nuestra aplicación en el directorio Crm que será accesible desde el navegador</li>
<p>¿Facil verdad?<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F05%2F22%2Fnueva-version-de-xataface-1-2-4%2F&amp;linkname=Nueva%20versi%C3%B3n%20de%20Xataface%201.2.4"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/05/22/nueva-version-de-xataface-1-2-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Trabajando con Xataface &#8211; Gestores de Contenidos</title>
		<link>http://www.esviable.es/2010/04/11/trabajando-con-xataface-gestores-de-contenidos/</link>
		<comments>http://www.esviable.es/2010/04/11/trabajando-con-xataface-gestores-de-contenidos/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 04:07:03 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Web Php]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[gestores de contenidos]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[xataface]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=259</guid>
		<description><![CDATA[Introducción
A la hora de realizar una aplicación web con su gestor de contenidos, normalmente contamos con las opciones de usar un framework de desarrollo que nos ayude en la generación del backend, como pueden ser:

Symfony
CakePHP
CodeIgniter
etc

Utilizar un cms en el que integrar el frontend con una parametrización del backend utilizando:

WordPress
Joomla
Modx
Drupal
etc

Y también podemos utilizar Xataface, un potente [...]]]></description>
			<content:encoded><![CDATA[<p><code><strong>Introducción</strong></code><br />
<code>A la hora de realizar una aplicación web con su gestor de contenidos, normalmente contamos con las opciones de usar un framework de desarrollo que nos ayude en la generación del backend, como pueden ser:</code></p>
<ul>
<li><span style="font-family: monospace;">Symfony</span></li>
<li><span style="font-family: monospace;">CakePHP</span></li>
<li><span style="font-family: monospace;">CodeIgniter</span></li>
<li><span style="font-family: monospace;">etc</span></li>
</ul>
<p><span style="font-family: monospace;">Utilizar un cms en el que integrar el frontend con una parametrización del backend utilizando:</span></p>
<ul>
<li><span style="font-family: monospace;">WordPress</span></li>
<li><span style="font-family: monospace;">Joomla</span></li>
<li><span style="font-family: monospace;">Modx</span></li>
<li><span style="font-family: monospace;">Drupal</span></li>
<li><span style="font-family: monospace;">etc</span></li>
</ul>
<p><code>Y también podemos utilizar Xataface, un potente sistema de gestión de de bases de datos.</code><br />
<code>Siguiendo unos pequeños pasos podemos generar un backend que nos va a permitir realizar todas las operaciones básicas (altas, bajas y modificaciones) sobre nuestra base de datos.</code><br />
<code><span id="more-259"></span>Hace unos años conocí el producto pero no lo tomé como una opción a tener en cuenta a la hora de realizar un backend para una Web.</code><br />
<span style="font-family: monospace;">Uno de mis clientes me lo propuso como opción para realizar la administración de los contenidos de su web hace unos meses y después de estudiarlo comprobé que era una solución viable.</span><br />
<span style="font-family: monospace;">Para empezar a trabajar tan solo debemos editar el fichero de configuración general, conf.ini y empezar a customizar:</span><br />
<span style="font-family: monospace;">En conf.ini</span><br />
<span style="font-family: monospace;">[_database]</span><br />
<code> host=localhost<br />
name=mydb<br />
user=me<br />
password=mypass</code></p>
<p><code> </code></p>
<p><code>[_tables]<br />
; Listamos las tablas que serán accesibles vía menú<br />
usuario=NombreTablaUsuarios<br />
news=NombreTableContenidos</code><br />
<code>Con estos datos ya nos mostrará un backend con un ABM completo</code><br />
<span style="font-family: monospace;"><strong>Características</strong></span><br />
<span style="font-family: monospace;"><br />
Con tan sólo 4 líneas de código PHP, podremos disponer de una aplicación web que permita la gestión de tu base de datos.<br />
Ofrece una intuitiva interfaz de usuario &#8211; la aplicación por defecto es consistente y fácil de usar.<br />
Hay un menú &#8220;tablas&#8221;, para seleccionar una tabla y cada tabla tiene accesos de menu a &#8220;detalles&#8221;, &#8220;lista&#8221;, y &#8220;encontrar&#8221;.<br />
Ofrece potentes opciones de configuración &#8211; Puedes configurar los detalles de la aplicación (como tipos widget) usando archivos de configuración.<br />
Extensible &#8211; Puedes modificar tu aplicación según tus necesidades utilizando los archivos de configuración y las clases PHP &#8220;delegated&#8221;.<br />
Triggers &#8211; Puedes agregar una función que se llame después se inserta un registro desde PHP.<br />
Permisos &#8211; Dispone de un potente sistema de permisos.<br />
Autenticación &#8211; Integrada y de facil puesta en funcionamiento, gestiona login y cierre de sesión.<br />
Relaciones &#8211; Indicando a Xataface cómo están relacionadas las tablas entre sí obtendrás una mayor funcionalidad lógica para la gestión de los datos.<br />
Customizable &#8211; Xataface utiliza el motor de plantillas Smarty como base y lo amplía con algunas nuevas características tales como plantillas extensibles y apoyo temático.<br />
Modular &#8211; Dispone de varios módulos que permiten extender las características de Xataface y una API simple para escribir sus propios módulos.</span></p>
<p><strong>Edición</strong><br />
Generación automatica de Formularios permitiendo agregar nuevos registros y editar los registros existentes.<br />
Widgets &#8211; Dispone de soporte, incluyendo widgets para campos de texto, áreas de texto, casillas de verificación, listas de selección, editores de html, redes,<br />
carga de archivos, y mucho más.<br />
Permite personalizar formularios &#8211; utilizando archivos de configuración y las clases &#8220;delegated&#8221;.<br />
Personalizable &#8211; Permite mostrar diferentes vistas a usuarios en función de sus permisos y preferencias.<br />
Añadir registros relacionados &#8211; Insertar registros y seguimiento automático de sus relaciones con otras tablas.<br />
Data Grid Editable- Administra tus datos como una hoja de cálculo utilizando el módulo de DataGrid.<br />
Copiar &#8211; Copia conjuntos de registros.<br />
Actualización conjunto encontrado &#8211; Actualización de múltiples registros con un click.<br />
Subir archivos &#8211; Soporte para subida de archivos, ya sea en un campo BLOB o en el sistema de archivos.<br />
Eliminar &#8211; Permite borrar un registro  o eliminar el conjunto de registros encontrado actual.<br />
<span style="font-family: monospace;"><br />
<strong>Búsqueda</strong><br />
Buscar de Forma automática &#8211; Busca en todos los campos de todas las tablas<br />
Búsquedas por rango &#8211; Búsqueda de registros que coincidan con los valores de un rango determinado (por ejemplo, encontrar todas las personas entre las edades de 20 y 30).<br />
Búsqueda exactas &#8211; Búsqueda de coincidencias exactas.<br />
Partial Matching &#8211; Búsqueda por campos que contienen una frase de palabras clave.<br />
Búsqueda en varios campos &#8211; Siempre hay un campo de búsqueda simple y accesible que busca en todos los campos de la tabla actual.<br />
Por ejemplo una búsqueda de &#8220;Tom&#8221; que coincide con algún registro de la tabla actual que contiene la palabra &#8220;Tom&#8221; en cualquiera de sus columnas.<br />
Registro relacionado Proveedores &#8211; Encuentra registros que contienen los registros relacionados que coinciden con un término de búsqueda.<br />
(Por ejemplo, encontrar personas que recibieron una &#8220;A&#8221; en un curso particular).<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Exportar datos</strong><br />
RSS &#8211; Soporte para RSS 1.0, 2.0 y Atom de cualquier conjunto encontrado.<br />
XML &#8211; Exportar cualquier conjunto encontrado como XML para que los datos se puedan intercambiar con otros productos (por ejemplo, las suites de edición electrónica).<br />
CSV &#8211; Exportar cualquier conjunto encontrado a CSV (valores separados por comas de valor) para abrir en una aplicación de hoja de cálculo como Excel.<br />
JSON &#8211; Exportar cualquier conjunto encontrado a JSON. Esta característica hace Xataface una buena opción para servir a la próxima generación de aplicaciones Web 2.0 AJAX.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Internacionalización I18N</strong><br />
Proporciona los archivos de idioma para la traducción de todas las cadenas y las etiquetas en la aplicación.<br />
Traducción de datos dinámicos &#8211; Xataface permite internacionalizar sus datos de bases de datos existentes sin tener que cambiar la estructura de su base de datos.<br />
Plantillas &#8211; Incluye una traducción () Smarty etiqueta para plantillas para traducir fácilmente plantillas de texto.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Importando datos</strong><br />
Filtro de importación API &#8211; Utilizando clases &#8220;delegated&#8221;, es fácil definir un filtro de importación para importar cualquier tipo de datos en la base de datos.<br />
Vista previa del usuario &#8211; El usuario puede ver los datos importados antes de confirmar que quiere importar.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Historico</strong><br />
Historico Opcional &#8211; Si habilitas el histórico de movimientos, todos los cambios realizados sobre los datos se registran.<br />
Deshacer / Rehacer &#8211; Permite volver fácilmente a una versión anterior de un registro.<br />
Ver Diffs &#8211; Ver las diferencias y cambios entre las versiones de archivos, similar a un wiki.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>El almacenamiento en caché</strong><br />
memoria caché de salida &#8211; Soporta memoria caché de salida de las páginas para mejorar el rendimiento. La caché se actualiza automáticamente cada vez que se realizan cambios en las tablas que se utilizan para generar una página.<br />
Apoyo de APC &#8211; Si está instalado APC (Cache PHP alternativa) , Xataface automáticamente la utilizará para almacenar la información de configuración de caché de la tabla. Esto tiende a aumentar el rendimiento en un 20%.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Seguridad</strong><br />
Los permisos están perfectamente delimitados &#8211; Permite definir permisos sobre toda la aplicación, a nivel de tabla, de registro, o por campo.<br />
permisos basada en roles &#8211; Permite la definición de roles (conjuntos de permisos que se pueden asignar a los usuarios).<br />
Permisos en modo extensible &#8211; Podemos definir nuestros propios permisos y roles, ampliando las funciones existentes para nuestra aplicación.<br />
Basadp en la Autenticación &#8211; Es fácil de configurar el inicio de sesión / cierre de sesión para la aplicación.<br />
Cifrado de contraseñas &#8211; Es compatible con la mayoría de los cifrados contraseña estándar, como MD5, SHA1, y la contraseña de MySQL.<br />
Autenticación extensible &#8211; Facil creación de plugins de autenticación en caso de que se quiera implementar una autenticación personalizada.<br />
LDAP &#8211; módulo de autenticación LDAP disponible.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Relaciones</strong><br />
Potentes Relaciones con los Modelos &#8211; Es fácil definir las relaciones entre las tablas usando archivos de configuración. Sintaxis simple y resultados de gran alcance.<br />
Añadir un nuevo registro relacionado &#8211; Crear un nuevo registro y agregarlo a la relación de un registro de los padres, al mismo tiempo.<br />
(Por ejemplo, crear un nuevo registro &#8220;curso&#8221; y agregarlo a la lista de un profesor de los cursos impartidos).<br />
Añadir el registro existente a sus relacionados &#8211; Permite añadir un registro existente a la relación de un registro de los padres.<br />
(Por ejemplo, añada el récord del campo a la lista existente de un profesor de los cursos impartidos).<br />
Eliminar registro relacionado &#8211; Quitar un registro de una relación.<br />
(Por ejemplo, eliminar un récord del campo de la lista de un profesor de los cursos impartidos).<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>API</strong><br />
Xataface incluye una potente API que permite trabajar más eficientemente con la base de datos.<br />
Objetos de datos &#8211; Proporciona una API sencilla para trabajar con los registros de base de datos. Buscar, cargar, guardar, editar y eliminar registros compatibles.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Plantillas</strong><br />
Template &#8211; Xataface utiliza el motor de plantillas Smarty como base.<br />
Herencia de Plantillas &#8211; Se pueden crear plantillas que heredan de otras plantillas y reemplazar el contenido especificado en &#8220;slots&#8221; de la plantilla original.<br />
Esto aumenta drásticamente la reutilización de las plantillas y la productividad de desarrollo.<br />
Asistencia en Cascada &#8211; Todo el sistema de plantillas se almacenan en el directorio de plantillas Dataface.<br />
La aplicación puede tener su propio directorio de plantillas donde se pueden colocar plantillas para anular un sistema de plantillas.<br />
Todas las partes del sistema se puede reemplazar sin modificar el template original con plantillas propias.<br />
</span><br />
<span style="font-family: monospace;">Todo esto, además de otras características que podéis encontrar en la web del proyecto<br />
Una vez superada la curva de aprendizaje, podéis desarrollar potentes backends con pocas horas de trabajo</span><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F04%2F11%2Ftrabajando-con-xataface-gestores-de-contenidos%2F&amp;linkname=Trabajando%20con%20Xataface%20%26%238211%3B%20Gestores%20de%20Contenidos"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/04/11/trabajando-con-xataface-gestores-de-contenidos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ejecutar Procedimientos Almacenados con Symfony y Doctrine</title>
		<link>http://www.esviable.es/2010/04/08/ejecutar-procedimientos-almacenados-con-symfony-y-doctrine/</link>
		<comments>http://www.esviable.es/2010/04/08/ejecutar-procedimientos-almacenados-con-symfony-y-doctrine/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 21:16:38 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Web Php]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[procedimiento almacenado]]></category>
		<category><![CDATA[procedure]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=235</guid>
		<description><![CDATA[En muchos proyectos que parten de cero, se pueden utilizar alternativas al uso de procedures.
Pero en ocasiones, nos encontramos con modelos de datos en producción que son usados por aplicaciones cliente servidor, web que no podemos modificar lo que nos lleva a utilizar los recursos disponibles y adaptarnos lo mejor posible a la arquitectura y [...]]]></description>
			<content:encoded><![CDATA[<p>En muchos proyectos que parten de cero, se pueden utilizar alternativas al uso de procedures.<br />
Pero en ocasiones, nos encontramos con modelos de datos en producción que son usados por aplicaciones cliente servidor, web que no podemos modificar lo que nos lleva a utilizar los recursos disponibles y adaptarnos lo mejor posible a la arquitectura y estructura que tiene el cliente.</p>
<p>Una sencilla forma de ejecutar un procedimiento almacenado con symfony y orm doctrine sería esta:</p>
<pre name='code' class="php">
    $name_proc = 'Nombre_Procedimiento';
    $dsn = 'mssql:dbname=DatabaseName;host=Servidor';
    $user = 'guest';
    $password = '';

    try{
	    $dbh = new PDO($dsn, $user, $password);
	    $conn=Doctrine_Manager::getInstance()-&gt;getCurrentConnection() ;
	    $conn-&gt;prepare($name_proc);
            $q= $conn-&gt;fetchAll($name_proc,array(10));
     }
     catch (PDOException $e){
         throw new sfDatabaseException(sprintf('PDOException was thrown when trying to manipulate session data. Message: %s', $e-&gt;getMessage()));
      }
</pre>
<p>Este ejemplo ejecuta un procedimiento almacenado sobre Sql Server, con cambiar el dsn se podría ejecutar en MySql 5+</p>
<p>Espero que haya sido útil <img src='http://www.esviable.es/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F04%2F08%2Fejecutar-procedimientos-almacenados-con-symfony-y-doctrine%2F&amp;linkname=Ejecutar%20Procedimientos%20Almacenados%20con%20Symfony%20y%20Doctrine"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/04/08/ejecutar-procedimientos-almacenados-con-symfony-y-doctrine/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>HipHop (HPHPi), Framework from Facebook for PHP</title>
		<link>http://www.esviable.es/2010/02/03/hiphop-hphpi-framework-from-facebook-for-php/</link>
		<comments>http://www.esviable.es/2010/02/03/hiphop-hphpi-framework-from-facebook-for-php/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 17:13:54 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Web Php]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[HipHop]]></category>
		<category><![CDATA[HPHPi]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=120</guid>
		<description><![CDATA[Finalmente, lo que era un rumor se cumplió. Bueno… casi. Se hablo de un acelerador, un compilador y una reescritura de la máquina virtual Zend, y aunque en un plano general era cierto que Facebook estuvo años trabajando en silencio para desarrollar una tecnología que acelerara PHP, en la práctica lo hicieron mediante un enfoque distinto.
Haiping [...]]]></description>
			<content:encoded><![CDATA[<p>Finalmente, lo que era un rumor se cumplió. Bueno… casi. Se hablo de un acelerador, un compilador y una reescritura de la máquina virtual Zend, y aunque en un plano general era cierto que Facebook estuvo años trabajando en silencio para desarrollar una tecnología que acelerara PHP, en la práctica lo hicieron mediante un enfoque distinto.</p>
<p style="font-weight: normal; font-style: normal; vertical-align: baseline; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; line-height: 1.4em; color: #333333; padding: 0px; border: 0px initial initial;"><a style="font-size: 12px; font-weight: normal; font-style: normal; vertical-align: baseline; outline-width: 0px; outline-style: initial; outline-color: initial; color: #122c42; text-decoration: underline; padding: 0px; margin: 0px; border: 0px initial initial;" href="http://www.facebook.com/hzhao">Haiping Zhao</a>, del equipo de ingenieros de Facebook, publicó hoy un artículo comentando que Facebook había optado por PHP por considerarlo un lenguaje simple de aprender, simple de escribir, simple de leer y simple de debuguear, pero que al mismo tiempo estaban conscientes de que en comparación con C++ o Java corría más lento y consumía más procesador. Paralelamente, por estar basado en C es posible traducir casi completamente cualquier script de PHP a C++, ya sea mediante reescritura de funciones o generando extensiones como las de PECL.</p>
<p style="font-weight: normal; font-style: normal; vertical-align: baseline; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; line-height: 1.4em; color: #333333; padding: 0px; border: 0px initial initial;"><span id="more-120"></span>Con la ayuda de Iain Proctor y Minghui Yang conformaron un equipo de desarrollo que terminó creando HipHop, algo que no es acelerador ni compilador, sino más bien un convertidor de código, que transforma scripts PHP a C++ y luego compila el C++ usando g++. Hay dos maneras de manejar esto: trabajando con los scripts compilados o bien usando <strong>HPHPi</strong>, un intérprete experimental que permite trabajar con HipHop tal como si se estuviera programando en PHP tradicional, para que no sea necesario compilar antes de correr el script. Aquí entre nos, me gustaría entender por qué es necesario HPHPi, si bastaría correr el script sin usar HipHop.</p>
<p>Actualmente Facebook dice que el 90% de los scripts que están corriendo pasa por HipHop, y que gracias a eso ahorran algo así como el 50% del uso de CPU. Menos uso de CPU significa menos servidores o la capacidad de crecer al doble con un mismo presupuesto. Considerando que cada uno de los 400.000 millones de pageviews mensuales que registra el sitio conlleva una serie de cálculos y algoritmos complejos,  ahorrarse la mitad de la carga implica una gran diferencia en dinero.</p>
<div id="attachment_121" class="wp-caption alignnone" style="width: 624px"><img class="size-full wp-image-121 " title="HipHop_transformation_process" src="http://www.esviable.es/wp-content/uploads/2010/02/HipHop_transformation_process.png" alt="Proceso de transformacion HipHop" width="614" height="384" />
<p class="wp-caption-text">Proceso de transformacion HipHop</p>
</div>
<p>El código de HipHop será puesto disponible para descarga, pero por su descripción no es algo que se puede instalar como si nada en los actuales servidores. Hará falta un largo periodo de adaptación antes de poder pronunciarnos sobre el comportamiento real. No es que pongamos en duda la palabra de Facebook, pero lo que funciona de una manera en su layout no necesariamente funcionará igual en el nuestro</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F02%2F03%2Fhiphop-hphpi-framework-from-facebook-for-php%2F&amp;linkname=HipHop%20%28HPHPi%29%2C%20Framework%20from%20Facebook%20for%20PHP"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/02/03/hiphop-hphpi-framework-from-facebook-for-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Php Alternative to Jasper Reports in Sugar Crm &#8211; Agata Report</title>
		<link>http://www.esviable.es/2009/11/30/php-alternative-to-jasper-reports-in-sugar-crm-agata-report/</link>
		<comments>http://www.esviable.es/2009/11/30/php-alternative-to-jasper-reports-in-sugar-crm-agata-report/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 06:44:13 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[CRM]]></category>
		<category><![CDATA[Web Php]]></category>
		<category><![CDATA[agata report]]></category>
		<category><![CDATA[jasper report]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sugar crm]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=61</guid>
		<description><![CDATA[Después de pasar un tiempo investigando por las necesidades expresadas por uno de mis clientes,
he encontrado la mejor manera de integrarles un módulo de reporting sin la necesidad de meter Java y Tomcat a través de Jasper Reports.
El motivo de evitar a toda costa meter Jasper Reports es que considero que es:
- Un gasto extra [...]]]></description>
			<content:encoded><![CDATA[<p>Después de pasar un tiempo investigando por las necesidades expresadas por uno de mis clientes,</p>
<p>he encontrado la mejor manera de integrarles un módulo de reporting sin la necesidad de meter Java y Tomcat a través de Jasper Reports.</p>
<p>El motivo de evitar a toda costa meter Jasper Reports es que considero que es:</p>
<p>- Un gasto extra de hosting para mi cliente.</p>
<p>- Mezclar dos tecnologías php y j2ee cuando se puede evitar</p>
<p>- Cierta desconfianza en el aire sobre los tiempos de generación de informes.</p>
<p>- Posibles problemas de integración a la hora de querer montar informes al vuelo.</p>
<p>Por este motivo he seguido buscando y he encontrado una herramienta denominada Agata Report, open source y basada en php. Parece que es justo lo que busco y una gran alternativa a la solución Java.</p>
<p>Ya os comentaré los resultados.<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2009%2F11%2F30%2Fphp-alternative-to-jasper-reports-in-sugar-crm-agata-report%2F&amp;linkname=Php%20Alternative%20to%20Jasper%20Reports%20in%20Sugar%20Crm%20%26%238211%3B%20Agata%20Report"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2009/11/30/php-alternative-to-jasper-reports-in-sugar-crm-agata-report/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PHP 5.3 Release Disponible</title>
		<link>http://www.esviable.es/2009/04/28/php-53-release-disponible/</link>
		<comments>http://www.esviable.es/2009/04/28/php-53-release-disponible/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 22:09:22 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Web Php]]></category>
		<category><![CDATA[migración]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php 5.3]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=26</guid>
		<description><![CDATA[Dentro de poco los programadores que usamos php podremos disponer de la nueva release de php 5.3.
Las principales características que he visto comentadas en una entrevista a Lukas Kahwe  son las siguientes:
- Performance versus memory usage
-Lambda functions, closures and PHAR
Tendremos que esperar a PHP 6 para encontrar grandes cambios.
Esto me recuerda, como las empresas [...]]]></description>
			<content:encoded><![CDATA[<p>Dentro de poco los programadores que usamos php podremos disponer de la nueva release de php 5.3.<br />
Las principales características que he visto comentadas en una entrevista a <a href="http://www.phpclasses.org/blog/post/94.html">Lukas Kahwe</a>  son las siguientes:</p>
<p>- Performance versus memory usage<br />
-Lambda functions, closures and PHAR</p>
<p>Tendremos que esperar a PHP 6 para encontrar grandes cambios.</p>
<p>Esto me recuerda, como las empresas que adquieren o desarrollan software con php, tienen que migrar sus aplicaciones cuando dejan de dar soporte a antiguas versiones, como ocurrió el año 2008 con php4.<br />
Muchas empresas tuvieron que migrar sus aplicaciones de php4 a php5.<br />
¿Como valoraís estas migraciones?<br />
¿Cual creeís que debe ser el tiempo que se debe dar soporte a una versión de un lenguaje de programación &#8220;gratuito&#8221;? ¿Debería de diferir del soporte de un lenguaje que te cobra licencias?<br />
Imagino que si aportas a la comunidad, en este caso de php donaciones, y te encuentras en un caso como este, te pueden crear parches pero, ¿alguien sabe cuanto cuesta esto?</p>
<p>Gracias por vuestros comentarios<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2009%2F04%2F28%2Fphp-53-release-disponible%2F&amp;linkname=PHP%205.3%20Release%20Disponible"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2009/04/28/php-53-release-disponible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
