Librería para que MySQL devuelva XML

Ya hace tiempo comentamos como hacer para que MySQL devolviera los datos en formato XML mediante procedimientos almacenados. En este caso se trata de la librería lib_mysqludf_xql que permite mediante un conjunto de funciones mostrar la salida de las consultas en formato XML, sin necesidad de utilizar lenguajes de programación tipo PHP o Ruby.

Esta librería usa xmlwriter de libxml2, la cual es una librería muy rápida sin caché, además escapa directamente las entidades XML y trata de forma muy eficiente la memoria cuando el contenido crece.

Un ejemplo de uso sería el siguiente:

SELECT xql_agg('classes' AS `xql:root`,
xql_element('class', null, concat(grade, suffix) AS name, teacher))
FROM schoolclass;

Y el resultado sería el siguiente:

<classes>
<class name="1A" teacher="Pullen"/>
<class name="2A" teacher="Berg"/>
<class name="3A" teacher="Heijden"/>
<class name="3B" teacher="Ven"/>
<class name="4A" teacher="Theunissen"/>
<class name="4B" teacher="Huizingh"/>
<class name="4C" teacher="Groot"/>
<class name="5A" teacher="Brongers"/>
<class name="5B" teacher="Zijlstra"/>
<class name="6A" teacher="Brommer"/>
<class name="7A" teacher="Nimwegen"/>
<class name="7B" teacher="Lede"/>
<class name="8A" teacher="Spaansen"/>
<class name="8B" teacher="Wiersma"/>
</classes>

lib_mysqludf_xql

links for 2007-12-29

|

YouAre, nuevo proyecto de Blogs Media

Hace unos minutos hemos presentado en la corporativa de Blogs Media y en Flickr, el proyecto que teníamos entre ceja y ceja desde el mes de mayo y del que ya se puede pedir invitación: YouAre:

Logo de YouAre

YouAre es la red social para construir tu identidad real compartiendo lo que haces y lo que te gusta con las personas que te interesan ya sea desde una perspectiva profesional o de amistad.

YouAre es publicación de contenidos por microblogging (con tipologías de texto, vídeo y fotos), networking, canales de ciudad, bookmarking, importación de contenido…

(…) youare.com. Es el dominio símbolo de lo que significa internet. El dominio perfecto para desarrollar una red social. El dominio para ser y estar…

Más información en: Presentando YouAre (youare.com)

links for 2007-12-24

Vacaciones

Estaré una semana de vacaciones, para olvidarme un rato del PHP, el CSS y parecidos. Desearos unas Felices Fiestas y que el próximo año nos sigamos leyendo mutuamente.
Mientras habrá algún que otro quicklink y poco más.

Ejemplos de mod_security

La gente de Ask Apache nos ofrece una serie de ejemplos sobre el uso de mod_security, el cual da la posibilidad de escanear todos los mensajes recibidos en tu web, incluyendo POST, trackbacks, pings, Ajax, etc… y permite crear reglas que paren el spam y prevean ataques.

Algunos ejemplos están centrados en DreamHost, lo que es bueno para los usuarios de este hosting.

De los ejemplos que ofrece me gustaría destacar:

Bloquear el spam de WordPress


SecFilterSignatureAction deny,nolog,status:403
SecFilterSelective ARG_url "casino|ringtone|lyrics"
SecFilterSelective ARG_comment_post_ID "^$"
# reject blog spam from all POST and GET fields
SecFilterSelective ARGS "blockspam|blockspam|blockspam|blockspam|blockspam|blockspam|blockspam|blockspam \
blockspam|blockspam|blockspam|blockspam|blockspam|blockspam|blockspam|blockspam|blockspam|blockspam \
nomorespam|nospam"

La directiva FilesMatch indica que solo ha de ejecutarse en esos ficheros. La línea ARG_url indica que se tomará como spam las peticiones con un campo en el form que tenga name o id como url alguno de los valores que se indican. Algo parecido pasa con la línea ARG_comment_post_ID, que tomará como spam los mensajes que no envie en campo comment_post_ID. Y la última línea busca en todos los get y post alguna de las palabras que se indican.

mod_security Guide and Examples of use in .htaccess

Librería PHP para SVN

Normalmente no es muy frecuente acceder mediante PHP a SVN, pero nos podemos encontrar con la situación de necesitar obtener archivos de SVN y para ello nada mejor que esta librerí.

PHP SVN Client recupera ficheros del SVN sin necesidad de otras aplicaciones. Accede al repositorio SVN mediante el protocolo WebDAV y permite obtener una lista de ficheros en un directorio, recuperar una revisión de un fichero, recuperar los logs de los cambios realizados para un fichero entre dos revisiones y obtener la última versión del repositorio.

$svn  = new phpsvnclient;
// Indica el repositorio
$svn->setRespository("http://dominio.com/svn/");
// Obtiene los ficheros de un directorio, la última versión
$files_now = $svn->getDirectoryFiles("/trunk/dir/");
// Obtiene la versión 7 de un directorio
$files_7   = $svn->getDirectoryFiles("/trunk/dir/",7);
// Obtiene la última versión de un fichero
$phpajax_now = $svn->getFile("/trunk/directorio/fichero.php");
// Obtiene la versión 7 de un fichero
$phpajax_7   = $svn->getFile("/trunk/directorio/fichero.php",7);
// Obtiene los logs
$logs = $svn->getRepositoryLogs(2,5);

PHP SVN Client