Archivo de entradas

Puestos a tener en nuestro blog un Acerca de o Sobre el autor, muy recomendable, podemos aprovechar los microformatos agregando sentido semántico a la web. Para esto tenemos hCard, la versión semántica de las tarjetas de presentación de toda la vida. Además de ofrecer información sobre alguien puede adornar y permitir la interacción con navegadores y herramientas que detectan este tipo de estándar.

El siguiente código es un ejemplo que la gente de Opera ha creado para una breve introducción a lo que es este estándar:


<div class="vcard">
  <span class="fn n">Jack Tripper</span>
  <div class="org">Jack's Bistro</div>
  <div class="adr">
    <div class="street-address">834 Ocean Vista Ave.</div>
    <span class="locality">Santa Monica</span>,
    <span class="region">CA</span>,
    <span class="postal-code">90405</span>
  </div>
</div>

Podemos consultar la referencia hCard en Microformats.com o usar la herramienta hCard Creator para crear fácilmente el nuestro.

Podemos validar un hCard indicando la url donde está o copiando directamente el código en hCard Validator.

[Via anieto 2k]

Tenía pendiente crear un bloque de entradas más vistas (o visitadas) y aprovechando la apertura del API de Google Analytics y lo divertido de la documentación he creado un breve programita en PHP para acceder a esos datos.

Basta con definir GA_LOGIN y GA_PASS con nuestros datos de acceso a Analytics e indicar en GA_IDS el id del perfil a consultar. El último dato también se puede obtener con el API, como explican en el ejemplo de datos de cuenta, pero he preferido indicarlo directamente para simplificar. Para obtener este número basta con entrar en Analytics, editar el perfil que deseemos y copiar el Número de identificación del perfil que nos indica.

Este ejemplo obtiene las 10 páginas con más visitas de la última semana ordenados de forma decreciente por visitas.

<?php
  define
('GA_LOGIN',  'LOGIN');       # cambiar
  
define('GA_PASS',   'PASSWORD');    # cambiar
  
define('GA_IDS',    'ID');          # cambiar
  
define('GA_APP',    'www.mabarroso.com-ga-1.0');

  
# Login
    
$loginURL 'https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email='.GA_LOGIN.'&Passwd='.GA_PASS.'&source='.GA_APP.'&service=analytics';
    
$loginData file_get_contents($loginURL);
    list(,
$Auth) = split('Auth='$loginData);

    if (!
$Auth) {
      exit(
'no logged in');
    }

  
# Fijamos user agent y Auth en la cabecera de las peticiones
    
ini_set('user_agent'GA_APP."\r\nAuthorization: GoogleLogin auth=$Auth");

  
# Rango de fechas
    
$dateEnd date('Y-m-d'time()-86400);  // ayer
    
$dateBegin   date('Y-m-d'time()-604800); // la semana pasada

  # Consulta
    
$data file_get_contents('https://www.google.com/analytics/feeds/data?ids=ga:'.GA_IDS.'&dimensions=ga:pagePath&metrics=ga:pageviews&sort=-ga:pageviews&start-index=1&max-results=10&start-date='.$dateBegin.'&end-date='.$dateEnd);
    
$data str_replace(array('dxp:dimension','dxp:metric'), array('dxpdimension','dxpmetric'), $data);
    
$xml simplexml_load_string($data);

  
# Datos
    
$i 0;
    foreach (
$xml->entry as $entry) {
      echo ++
$i.' '.$entry->dxpdimension['value'].' : '$entry->dxpmetric['value'] .'<br/>';
    }
?>

He tenido problemas al recuperar los valores dxp:dimensión y dxp:metric con SimpleXML. No es una solución elegante pero, para salvar el obstáculo, reemplazo esas cadenas de texto por otras que no dan problemas (les quito los dos puntos).

lo más visto

Actualizado 24/4/2009 8:45. He usado el código anterior como base para actualizar a diario el nuevo bloque Lo más visto en la barra de la derecha, según los datos de Google Analytics.

Con una tarea programada para ejecutarse una vez al día: se recuperan los datos, se construye el código HTML y se guarda en archivo. La consulta a Google no se hace en cada petición. Es innecesario. Por el momento son las entradas más vistas durante la última semana, como en el código de ejemplo. Con el paso del tiempo comprobaré si conviene acortar o alargar el periodo.

Ahora se me ocurre que también sería interesante hacer otro bloque que fuera La entrada más vista ayer. Valdría el mismo código, cambiando la fecha inicial por $dateBegin = date('Y-m-d', time()-172800); (fecha actual menos el número de segundos de dos días). Por optimizar, también se puede cambiar en la url de la consulta max-results=1 y así obtener un único resultado en vez de 10.

Curioseando la documentación del API de Google Analytics me ha sorprendido las múltiples referencias a Orgullo y prejuicio. No deja de ser simpático que el usuario Elizabeth Bennett use su cuenta de correo liz@gmail.com para identificarse. Es divertido que los perfiles a los que tiene acceso sean Darcy's Blog (el blog del orgulloso amigo del señor Bingley), Jane's Blog (el blog de su hermana), el Austen's Most-Adored Website y el The Jane Austen Bookstore. Es una lástima que mi preferido, el adoradamente odiable señor Collins, no tenga su propio blog para hablar de su benefactora Lady Catherine de Bourgh y de la magnífica Rosings Park. Por suerte Lydia tampoco parece tener blog. Preferirá bailar.

Me avergüenza reconocer que he tenido un primer impulso machista al pensar "esto lo ha escrito una mujer". En mi defensa sólo puedo decir que me encanta esta novela, que he visto la serie de la BBC en varias ocasiones (más de 4, que recuerde) y que enseguida reprimí ese impulso por dos razones: porque la documentación es buena (independientemente de quién la haya escrito) y, segundo, porque no hay que olvidar que esta novela es una de las obras más conocidas de la literatura inglesa.

Me estoy divirtiendo un montón. No he podido resistirme a postearlo. Estoy deseando seguir con la documentación para ver si siguen apareciendo más personajes. Después de todo una de mis frases preferidas es del señor Darcy. De paso, aprender a manejar el API.

wdl

Con el apoyo de la Organización de las Naciones Unidas para la Educación, la Ciencia y la Cultura, la Biblioteca Digital Mundial (the World Digital Library, WDL) pone en Internet gratis y multilingüe, importantes materiales fundamentales de culturas de todo el mundo. Tesoros culturales como manuscritos, mapas, libros poco comunes, partituras musicales, grabaciones, películas, grabados, fotografías y dibujos arquitectónicos. Se puede acceder seleccionando lugar, tiempo, tema, tipo e isntitución.

Nos permite acceder, por ejemplo, al Diario del viaje de Magallanes (manuscrito de alrededor de 1525), Procesión en Sevilla y escenas de corridas de toros (de 1898) y Libro del itinerario seguido durante el viaje a las Indias Orientales, desde el 18 de octubre de 1746, hasta el 20 de junio de 1749. Son los que más me han llamado la atención. Documentos a los que seguramente nunca habría tenido acceso. Se puede ver el texto japonés considerado el primer libro jamás impreso y códices precolombinos de México (patrimonios de la humanidad). Por el momento priman la calidad a la cantidad, pero irán añadiendo contenido.

Hasta ahora sólo me había preocupado de mantener unas "buenas costumbres" relacionadas con SEO como construir URL amigables, mantener un mínimo las etiquetas meta en el HTML y aplicar el nofollow en algunos enlaces. Ocasionalmente hacía algo especial, como crear y mejorar sitemaps y repasar el robots.txt. Usaba servicios como Google Webmaster Tools y Google Analytics sin prestarles demasiada atención y como curiosidad más técnica que práctica. Para el blog, nunca se me ocurrió hacer nada de SEM.

El pasado mes de marzo recibimos un curso-presentación (por webanalytics.es) de Google Analytics en el trabajo que me abrió los ojos ante todo lo que no aprovechaba de esta herramienta. Ha sido muy gratificante hacer varias cosas en el trabajo, pero enseguida aparecen ideas osadas que no se pueden probar en cualquier parte. Llevo mucho tiempo usando mi blog como lugar de pruebas. He aprovechado para aplicarle muchas de las cosas que vimos en aquella presentación y para hacer esas pruebas atrevidas con las que no te la puedes jugar en el sitio web que te da de comer.