Facebook desarrolla XHP

Si el otro día Facebook nos sorprendía con HipHop, hoy me entero que también han desarrollado una extensión para PHP llamada XHP, la cual permite añadir XML (o HTML) en el código PHP y que sea una expresión válida. ¿Qué quiere decir esto?, pues que no es necesario hacer tratar el HTML como string o usar ?> … <?php para añadir HTML en nuestros scripts.

$href = 'http://www.facebook.com'; 
echo <a href={$href}>Facebook</a>;

Además escapa automáticamente el contenido de las variables para evitar vulnerabilidades:

<?php
echo '<div>Hello '.htmlspecialchars($_GET['name']).'</div>';
<?php
echo <div>Hello {$_GET['name']}</div>

También ofrece la posibilidad de definir elementos XML, sus atributos o su estructura.

Tengo mis dudas sobre su rendimiento, pero pensando en que ellos “compilan” el código PHP, al final no les afectará en rendimiento.

XHP

Vía / PHPDeveloper.org

Diferentes técnicas de cacheado

Otro interesante artículo sobre caché y los distintos modos de poder llevarlo a cabo. Para aquellos que quieran añadir caché a su sistema y ahorrar recursos y no sepan qué hacer, puede venirles muy bien este wiki y el listado de tipos de cache que hay:

  • Caching Proxy Servers
  • Content Delivery Networks
  • Cachear páginas completas
  • Cachear páginas parciales
  • Cabeceras HTTP
  • Memoria compartida (memcache, APC)
  • Cache en la BD

Web application/Caching

Vía / DZone

Memcached y cosas que se pueden hacer con él

Interesante artículo en el que se nos explica qué es memcached (por si alguien no lo conoce), nos ofrece un ejemplo de clase que utiliza memcached, nos muestra una presentación sobre Facebook y memcached, y nos explica qué usos se le pueden dar a memcached:

  • Restringir el acceso a spammers
  • Detectar usuarios activos/inactivos conectados
  • Crear webs escalables
  • Evitar cacheado de contenido erróneo
  • Almacenar datos triviales sin usar DB

Memcache

También recomiendo leer su post: MySQL Query Cache, WP-Cache, APC, Memcache – What to choose

Memcached and “N” things you can do with it – Part 1

Vía / PHPDeveloper.org

PHP-FPM: alternativa a FastCGI

PHP-FPM (FastCGI Process Manager) es una alternativa a PHP FastCGI que incluye algunas características adicionales como:

  • Administración de procesos, pudiendo pararlos y arrancarlos
  • Posibilidad de empezar procesos con diferente uid, gid, chroot, entorno o php.ini
  • Logs
  • Reinicio de emergencia
  • Soporte para upload acelerado
  • Slowlog
  • fastcgi_finish_request(), una función especia que ternima la petición, envía los datos al cliente (flush) y continúa realizando otra función (codificación de vídeo, proceso de estadísticas, …)

PHP-FPM

Gracias David por el aviso

HAProxy: proxy para mejorar el rendimiento

HAProxy es un proxy gratuito, con balanceo de carga y que soporta decenas de miles de peticiones. Además de tener un gran rendimiento, permite tener un control de concurrencia, esencial cuando tenemos demasiadas peticiones que nuestro sistema no puede soportar, y en vez de saturar el sistema y dar un mal servicio a todo el mundo, podemos limitar el número de peticiones para que al menos una parte de los usuarios sí reciban el servicio adecuado.

HAProxy

Vía / SaaS Interrupted

|

BigDump: facilita recuperar dumps de MySQL grandes

A veces es un lío enorme recuperar BDs obtenidos de dumps cuando el fichero es enorme, sobre todo si usamos phpMyAdmin (y no tenemos acceso a él). Por ello este script nos puede venir muy bien para recuperar backups anteriores, ya que recupera de poco en poco y se auto-reinicia él mismo.

BigDump

Plupload: sube varios ficheros fácilmente

Plupload es un script creado por los autores de TinyMCE. Permite subir ficheros usandoHTML5 Gears, Silverlight, Flash, Yahoo! BrowserPlus o formularios normales, además permite subida progresiva, redimensionado de imágenes y chunked uploads.

Está dividido en dos partes: Core API y una cola de subida jQuery, lo cual permite que creamos nuestra propia implementación. Además en Firefox 3.5+ se puede usar drag&drop y el redimensionado de images también es exclusivo de FF.

Plupload

Vía / WebAppers

Opiniones sobre HipHop de Facebook

He estado leyendo bastantes opiniones sobre HipHop de Facebook e iba a hacer un listado pero me he encontrado con el trabajo ya hecho en PHPDeveloper.org:

Community News: Responses to the Facebook HipHop Announcement

Mostrar las páginas vistas y las visitas de Google Analytics al estilo Feedburner

Me ha gustado el ejemplo para mostrar en tu web las visitas y las páginas vistas de tu web como muestra Feedburner los suscritores que tienes en el feed. Para mostrarlo haremos uso de la librería GAPI, la cual accede a los datos que ofrece Google Analytics:

<?php
define('ga_email','yourGoogleEmail');
define('ga_password','yourGooglePass');
define('ga_profile_id','yourProfileID');

require 'gapi.class.php';
$ga = new gapi(ga_email,ga_password);
$ga->requestReportData(ga_profile_id,array('browser','browserVersion'),array('pageviews'));
?>

El resto será darle estilo a los datos obtenidos.

FeedCount-Like Google Analytics Counter

Vía / Script & Style

|

Facebook crea HipHop para PHP

Después de muchos rumores ya se ha conocido que Facebook ha creado una aplicación que transforma PHP en código C++, no es un compilador en sí, sino una especie de traductor de código que compila. Los resultados en Facebook son asombrosos, hasta un 50% menos de CPU, lo cual reduce el número de servidores que necesitan.

HipHop for PHP