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 Web Stat es una aplicación web que puedes instalar en tu servidor para poder visualizar las estadísticas de tus páginas en tiempo real.
No necesita conexión a una base de datos, dispone de una consola de administración sencilla, tiene protección por contraseña, se instala fácilmente y está disponible en varios idiomas.
Y entre las funcionalidades que ofrece nos encontramos con informes sobre las visitas totales, diarias, del día de ayer, por meses, medias, impresiones, por sistema operativo, navegador, resolucion, URLs visitadas, motores de búsqueda o países. PHP Web Stat
Vía / SmashingApps
Para mí, uno de los mayores fracasos de Twitter es su API, una limitación de su uso increíble para algo que le podría dar mucho juego a la aplicación. Ahora mismo no sé en cuánto está el límite, pero la posibilidad de realizar una aplicación basada en Twitter es una pesadilla.
Para aquellos que no quieran sufrir lo que hemos sufrido con TwitterPoster (los espacios en blanco es porque la gente actualiza su imagen y no podemos recuperar la de todos los usuarios por el límite en el API de Twitter), les recomiendo usar Twitter mediante CURL.
Os paso un script sencillito que he realizado:
<?php
// Primer hacemos login
$url ="https://twitter.com/sessions";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// Por si tienen limitación por navegador
curl_setopt($ch, curlOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)");
// Poned una ruta para las cookies
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/');
curl_setopt ($ch, CURLOPT_COOKIEFILE, '/temp/');
curl_setopt ($ch, CURLOPT_POSTFIELDS, "username_or_email=[usuario]&password=[contraseña]");
// Para que funcione el https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, curlOPT_SSL_VERIFYHOST, 2);
curl_exec ($ch);
// Cargamos el home, porque Twitter añade dos campos ocultos para poder publicar por web
$url ="http://twitter.com/home";
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec ($ch);
// Recuperamos los campos ocultos
preg_match('//', $result, $match);
$authenticity_token = $match[1];
preg_match('//', $result, $match);
$siv = $match[1];
// Insertamos el texto
$res = $url ="http://twitter.com/status/update";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'siv='.$siv.'&authenticity_token='.$auth.'&status=[texto]');
curl_exec ($ch);
curl_close ($ch);
unset($ch);
?>
¿Qué fallo tiene este script? pues que si cambian el HTML (campos de formulario, …) o las URLs deja de funcionar, pero al menos no tenemos limitaciones. Eso sí, es más costoso para sus servidores y para los nuestros, porque en vez de hacer una llamada, hacemos 3, y en nuestro caso, a parte parseamos una página para obtener dos campos ocultos.
Interesante estudio que muestra la velocidad de tres frameworks PHP (Cake PHP, CodeIgniter y Zend Framework).
Realiza diferentes pruebas: sin usar caché, usando caché propio, usando caché externo, acceso a BD, acceso mediante Active Records, … Los resultados demuestran que CodeIgniter es el más rápido y Cake PHP el más lento.
Es también destacable los datos sobre número de peticiones por segundo cuando se usa un framework a cuando se usa HTML estático. Por eso es recomendable realizar un caché para servir HTML estático.
El autor también realiza una comparativa de funcionalidades entre CodeIgniter y Zend Framework, aunque lo miraría con cuidado, porque dice que CI no admite internacionalización y no es cierto. PHP framework comparison benchmarks
Horde es otro framework PHP que ofrece las tÃpicas herramientas para crear aplicaciones web: configuración de la aplicacion, compresión, detección de navegador, MIME y mucho más.
Horde está usa PEAR en su código, algo que a mà personalmente no me entusiasma mucho. A parte da instrucciones para mejorar el rendimiento (tunning). No solo funciona con Apache, sino con otros servidores web como IIS.
Dentro de este proyecto, se reúnen otros proyectos como una aplicación web, una suite groupware, gestor de tickets, visor de repositorios, etc… Horde
Twitter OAuth PHP Class es una librería que nos vendrá muy bien para poder utilizar el API de Twitter usando OAuth, método de autenticación que no necesita que el usuario registre su usuario/contraseña en otras aplicaciones.
Lo malo es que estas cosas un dÃa cualquiera dejan de funcionar, y si quieres proveer un servicio serio que las utilice te arriesgas a que eso ocurra en cualquier momento.
Creo que Alexa deberÃa tener algún tipo de api oficial gratuita, al fin y al cabo no es algo extraordinario.
Josep, estoy totalmente de acuerdo contigo. Yo creo que Alexa es lo peor que existe, pero curiosamente, algunos lo siguen como si fuera la única verdad.
Lo malo es que estas cosas un dÃa cualquiera dejan de funcionar, y si quieres proveer un servicio serio que las utilice te arriesgas a que eso ocurra en cualquier momento.
Creo que Alexa deberÃa tener algún tipo de api oficial gratuita, al fin y al cabo no es algo extraordinario.
Josep, estoy totalmente de acuerdo contigo. Yo creo que Alexa es lo peor que existe, pero curiosamente, algunos lo siguen como si fuera la única verdad.
Espero que a esas personas les sirva el script.