Drigg: clon de Digg con Drupal

Aquellos que quieran crear una web al estilo Digg ya lo pueden hacer mediante Drigg, un módulo para Drupal que nos ofrece este servicio. Para su uso es necesario disponer de otros dos módulos: user_karma y un módulo para votaciones (preferiblemente extra_voting_forms.
Es sencillo de usar y permite modificar el theme de forma fácil. Los fotos se realizan también de forma simple, pudiendo elegir entre 4 tipos de votos. Además permite crear votos automáticos para el inicio de la aplicación para darle actividad aleatoria a la aplicación.
Drigg
Vía / Smashing Apps

Usar Open Flash Chart desde CakePHP

Open Flash Chart es una de los mejores componentes Flash para crear gráficas, su uso es bastante sencillo, pero aún así, siempre viene bien tener una capa de abstracción para despreocuparnos de cómo se usa. Los que desarrollen usando CakePHP disponen de una librería que les facilitará la labor de realizar gráficas.

Un ejemplo de uso sería el siguiente:

<?php
$flashChart->begin(400, 250);
$flashChart->title('Example 4 - Pie Chart: My imaginary Browser Stats');
$browser_data = array(
'Firefox' => array(
'value' => 30
),
'Opera' => array(
'value' => 7
),
'IE' => array(
'value' => 38
),
'Other' => array(
'value' => 25
)
);
$flashChart->pie($browser_data);
echo $flashChart->render();
?>

Open Flash Chart Helper: draw charts the Cake way

Top de blogs en Bitacoras.com

Hace un rato hemos lanzado en Bitacoras.com nuestro top de bitacoras reborn, vamos, hemos mejorado el sistema y le hemos dado un nuevo estilo.
top_bitacoras.com.png
¿Qué tiene nuestro top que no tengan otros? pues que nos basamos en datos propios, no hacemos la media de lo que nos diga Google, Alexa u otros servicios. Tenemos nuestros blogs y sacamos nuestros datos.
Lógicamente nuestros datos no son perfectos, ya que al depender de los blogs registrados y de los pings que nos hacen, nos podemos perder entradas. Pero que no sea perfecto, no quita que sea fiable, ya que sinceramente, al menos yo, sospecho un tanto de Alexa y su ranking. Quizás por ello, sería interesante que si no estás registrado en Bitacoras.com, lo hagas y que nos mandes un ping cuando publiques.
Por último, si quieres añadir tu posición en Bitacoras.com en tu propio blog, ofrecemos un pequeño widget que os ayudará.

Marjory: webservice para indexar y buscar documentos

Marjory es un webservice que nos ayuda a indexar y buscar documentos realizado en PHP. Utiliza la búsqueda fulltext aunque también está disponible la búsqueda mediante Lucene (en un futuro pretenden sacar más).
No utiliza protocolos XML-RPC o SOAP, usa una interfaz REST para comunicarse con las otras aplicaciones. Aunque no estaría mal respuestas en JSON.
Está realizado con Zend Framework y usa la librería para Lucene como motor de búsqueda por defecto.
Marjory

Webgrind: frontend para Xdebug

Webgrind es una aplicación web que nos permite visualizar los datos que nos ofrece Xdebug.
webgrind.png
Es de fácil instalación, compatible con todas las plataformas y permite comprobar el tiempo gastado en las funciones según su coste. Además podemos conocer dónde es llamada cada función y qué función la llama.
Webgrind
Vía / PHPDeveloper.org

5 funcionalidades de PHP que no se puede ignorar

Yo más diría que se deben conocer, porque algunas suelen ser algo desconocidas.

  • SimpleXML: parser de XML muy sencillo y potente, ya he hablado de esta librería y la diferencia con el método anterior de parsing de los xml es abismal.
  • JSON y SOAP: para la comunicación entre aplicaciones, a mí personalmente JSON me encanta y su uso es simple, muy simple.
  • PDO: capa de abstracción para acceso de la BD que nos permite acceder a MS SQL Server, Sybase, Firebird/Interbase, IBM, Informix, MySQL, Oracle, ODBC y DB2, PostgreSQL, SQLite de forma transparente.
  • SPL: o Standard PHP Library, permite convertir elementos en arrays y tratarlos con iteradores.
  • SQLite: librería para poder trabajar con esta base de datos (SQLite).

5 PHP 5 features you can’t afford to ignore

Vía / PHPDeveloper.org

Transformar los errores en excepciones en PHP

Lo que más me gusta en Java es el tratamiento de los errores mediante excepciones, en PHP no está tan logrado, pero se puede apañar para que tenga un funcionamiento parecido:

set_error_handler('error_handler');
function error_handler($errno, $errstr, $errfile, $errline) {
if (4096 == $errno) throw new Exception($errstr);
return false;
}

El código 4096 indica que el error es capturable, se produce un error pero no produce un situación inestable.

Después podremos capturar los errores de la siguiente manera:

try {
// Operación que produce error
} catch (ErrorException $e) {
// Tratar el error
}

Turning errors into exceptions