Mostrar tu posición en Alexa mediante PHP

El ranking de Alexa es uno de los más famosos que hay, y es bastante utilizado a la hora de vender publicidad u otros aspectos comerciales. Dispone de un API que permite obtener el ranking de una web, por lo que podemos hacer una llamada y obtener los datos para poder mostrarlos en nuestra web.

La clase es muy sencilla:

class AlexaRank {
  public function getRequestUri($domain) {
    return 'http://data.alexa.com/data?cli=10&dat=s&url=' . $domain;
  }

  public function parse( $httpResponse ) {
    preg_match( '#<popularity url="(.*?)" text="([0-9]+){1,}">#si', $httpResponse, $p );
    $res = ( $p[2] ) ? number_format( intval($p[2]) ):0;
    return str_replace(',', '', $res);
  }
}

Php Class to Retrieve Alexa Rank

Vía / DZone

Krumo: alternativa a var_dump

Krumo es una librería que realiza lo mismo que var_dump, pero dándole un formato más amigable. Permite cambiarle el formato mediante skins.

krumo

Una alternativa a tener en cuenta, yo personalmente uso bastante var_dump y a veces es un poco lío seguir en debug de objetos grandes.

Krumo

|

Escalar aplicaciones web usando HMVC

Hierarchical-Model-View-Controller (HMVC) es una variante del MVC que se forma mediante una colección de estos, siendo cada MVC independiente de los otros, y siendo un aspecto importante la reutilización de código, por lo que la localización física de los MVC no es importante. El HMVC es muy efectivo a la hora de testear módulos de la aplicación independientes, y una buena opción para escalar nuestra aplicación.

El tutorial nos muestra cómo usar Kohana para llevar a cabo una aplicación que implemente HMVC. Está claro que una aplicación así puede ser algo más difícil de diseñar y que no siempre puede que necesitemos este grado de escalabilidad.

Scaling Web Applications with HMVC

Librería oEmbed para CodeIgniter

Si el otro día hablaba de oEmbed, hoy voy a hablar de una librería para CodeIgniter que nos puede ser útil para aquellos que desarrollamos usando este framework.

Por ahora detecta los siguientes servicios:

  • YouTube
  • Viddler
  • Qik
  • Revision3
  • Vimeo
  • Hulu

Se echa en falta alguno como Flickr, pero es un principio y nosotros mismos podemos ampliar la librería. Tampoco estaría mal que no fuera necesario indicar el servicio, sino únicamente la URL.

OEmbed-Library

Vía / @xoan

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

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

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