|

Lista de ejemplos para jQuery

Una de las formas que más me gusta para entender alguna librería nueva es mediante ejemplos. Si ayer realizábamos un ejemplo, con jQuery hoy os paso una pequeña lista con ejemplos donde se usa esta librería.

Se triplica la lectura de blogs en los diarios digitales

El porcentaje de visitas que suponen los blogs en los diarios digitales se ha triplicado en el pasado año al igual que el número de visitantes totales a los blogs afiliados a estos medios. Actualmente suponen un 13% de las entradas frente al 4% del año anterior. Los datos los aporta un estudio realizado por Nielsen/NetRatings sobre los 10 principales diarios digitales en USA.
Desde luego es una cifra muy importante si además se tiene en cuenta que el acceso a los blogs en la mayoría de estos periódicos no está en zonas especialmente destacadas. Se trata de información que la gente busca de forma activa.
Por otro lado la evolución lógica en la prensa digital es los blogs sustituyan a las tradicionales secciones de opinión, columnas y tribunas. Esto ya ocurre en medios como en 20minutos, pionero en España en el tema de blogs o en elmundo.es.
Vía / Reuters

links for 2007-01-19

|

Basar el diseño del historial del navegador en la memoria del usuario

La usabilidad del historial del navegador podría ser mucho más útil si se rediseña pensando en cómo funciona la memoria del usuario. Es la acertada reflexión que hace Alex Faaborg, diseñador de experiencia de usuario en Mozilla y miembro del equipo de desarrollo de Firefox 3.

El objetivo del usuario cuando va al historial se podría resumir en algo como: "Yo vi algo en algún sitio hace poco y quiero volver ahí". Lo que normalmente hacemos para volver a encontrar esa información es ir al sitio donde lo vimos y recrear las acciones realizadas para volver a encontrar la información: esto suele ser más sencillo y rápido que usar el historial del navegador.

El problema es que el historial funciona mostrando una lista de titulos de páginas, además ordenados por orden alfabético y casi nadie se fija en el título de una página que, además, suele ser poco descriptivo.

Sin embargo hay elementos de la interacción con el navegador que son más fáciles de recordar:

  • Acciones específicas que hizo: recordamos más facilmente lo que hemos hecho que dónde hemos estado. Por ejemplo: yo busqué tal palabra, guardé tal sitio en mis favoritos o ví el enlace en tal blog.
  • El aspecto del sitio donde estuvimos: la ciencia cognitiva ha demostrado repetidamente que somos mucho mejores recordando imágenes que textos, especialmente en tareas de reconocimiento.
  • Palabras o frases que leímos
  • Cuándo hicimos algo: sabemos que hemos hecho algo hoy, ayer o hace varios días. No sabemos lo que hicimos hace exactamente 5 días o hace 7 días.

En base a estas premisas, algunas hipotéticas, pero muy lógicas, Faaborg hace una propuesta de rediseño del historial que se puede ver en este prototipo:

http://sentidoweb.com/img/2007/01/newHistory.jpg_large-thumb.jpg

y que tendría estas características:

  • Poder buscar sobre las búsquedas que has realizado
  • Estaría organizado sobre segmentos de tiempo y acciones realizadas (buscar, abrir pestaña, pulsar link…). Cada segmento se agruparía sobre la acción que disparó la visualización de una serie concreta de páginas.
  • Añadiría al título de la página una imagen en miniatura de la misma.

Una interesante propuesta que es posible que se convierta en una extensión para Firefox del laboratorio de Mozilla

Vía / Blog de Alex Faaborg

| |

Laboratorio: desplegar mapa del sitio mediante Ajax

Vamos a explicar un pequeño script para mostrar en una capa el mapa del sitio web usando Ajax (en este caso la librería jQuery).

Un efecto parecido lo podemos encontrar en periódicos online para mostrar las diferentes secciones que se pueden visitar. Por ejemplo lo podemos ver en elmundo.es (en la cabecera) y en elpais.com (en el pie de página).

Se trata de que cuando se pasa el ratón sobre el link, se muestra un menú con las secciones del periódico (mapa del sitio en nuestro caso).

Como hemos explicado en otras ocasiones de cómo usar Ajax, esta vez vamos a utilizar la librería jQuery para facilitar la labor. El que sea un mapa del sitio es debido a que de cara a SEO los buscadores indexan más facilmente nuestro sitio.

También hemos pensado en la accesibilidad, para ello el enlace nos lleva a una página que muestra el mapa del sitio. Esta página que deberá ser dinámica, lo que hace es incluir en la parte del HTML donde se muestra la información principal (suponiendo que hay navegación y paneles laterales) el contenido de otro archivo, que es el que tiene el mapa del sitio. Este último archivo es el mismo que mediante Ajax se carga en la capa que se muestra en el mouseover del enlace.

Supongamos que tenemos dentro de nuestra página, el enlace en cuestión y una capa que estará oculta inicialmente mediante CSS:

<p><a href="paginasecciones.php" id="secciones">Secciones</a></p>
<div id="marco"></div>

También disponemos de dos páginas, una que muestra el mapa del sitio (secciones.html) y otra que incluye a la primera dentro de su contenido (paginasecciones.php), en cuyo código debería haber la siguiente función:

<?php require('secciones.html'); ?>

Ahora tan solo nos falta en el onload del window añadir la funcionalidad necesaria para ocultar la capa, y añadir al enlace el evento onmouseover para cargar el contenido de la capa y mostrarla cuando se pose el ratón en el enlace, y el evento onmouseout para ocultar la capa cuando salgamos del enlace.

window.onload = function() {
var obj = $("div#marco");
obj.hide();
$("a#secciones").mouseover(
function() {
var capa = $("div#marco");
// Para evitar recargar la pagica cada vez que se muestra
if (!capa.attr("cargado")) {
capa.load("secciones.html");
capa.attr({cargado: true});
}
capa.show().slideDown("slow");
} );
$("a#secciones").mouseout(
function() {
var capa = $("div#marco");
capa.slideUp("slow");
} );
}

El código es muy sencillo, lo único necesario de explicar para entenderlo es lo siguiente:

  • Cuando se carga el contenido de la capa, primero se comprueba si existe un atributo propio que hemos añadido a la capa, si no existe ese atributo entonces cargamos el contenido mediante Ajax y luego creamos ese atributo para así no tener que volver a cargar otra vez el contenido cuando pasemos el ratón sobre el enlace.
  • La función $ nos permite obtener un elemento HTML, en el caso de $(“div#marco”) nos devuelve el elemento DIV cuyo id es “marco”.
  • hide() oculta un elemento HTML.
  • show() muestra un elemento.mouseover(funcion) añade la ejecución de la función en el evento mouseover de un elemento.
  • mouseout(funcion) añade la ejecución de la función en el evento mouseout de un elemento.
  • attr(texto) consulta el valor del atributo pasado como parámetro de un elemento.
  • attr(código) añade el atributos y valores a un elemento.
  • slideDown despliega una capa hacia abajo.
  • slideUp repliega una capa hacia arriba.

Código fuente

Microsoft liderará el grupo de trabajo HTML en la W3C

El grupo de trabajo que, dentro de la W3C, se encargará de la controvertida misión de “reinventar el HTML“, estará liderado por Chris Wilson, el jefe del proyecto IE7. Este grupo de trabajo colaborará con WHATWG de evolucionar el HTML de forma paralela al XHTML.
Personalmente me llevé una grata impresión de Chris, al que muchos pudimos escuchar en la pasada edición de Fundamentos Web, y hay que reconocerle su gran labor acercando IE7 a los estándares.
Pero que sea un alto responsable de Microsoft el que se encarge de liderar la evolución de un lenguaje que esa empresa ha respetado tan poco a largo del tiempo es algo que nos produce inquietud y desasosiego.
No puedo estar más de acuerdo con Daniel Glazman cuando considera que:

No puedo entender cómo y porqué el liderazgo del Grupo de Trabajo del HTML se da al vendedor mayoritario de navegadores, en este caso Microsoft. Microsoft, Mozilla, Opera y Apple deberían estar fuera de este liderazgo de este nuevo grupo de trabajo para preservar su independencia total o al menos añadir un co-lider independiente para mantener este propósito.

Creo que los que piensan que esto significa que Microsoft se acercará a los estándares y a la W3C pecan de ingenuos y que esta no es una buena noticia.
Vía / 456BereaStreet

Escapada Rural: desarrollo de un proyecto

escapadarural.pngAlgo que nos puede interesar tanto como la aparición de un nuevo sitio web, es obtener información sobre cómo se ha desarrollado ese sitio para así tener una idea mejor sobre lo que es necesario tener en cuenta si nos metemos en un proyecto parecido.
En este caso, Fabio nos comenta que él y Gus se han metido en el desarrollo de Escapada Rural, y algo que me ha interesado es cómo lo han desarrollado. Por lo cual les hice una serie de preguntas que tuvieron la amabilidad de responder. Para evitar la vergüenza de que veáis mi escaso estilo periodístico os comento lo más destacable desde mi punto de vista.
Un proyecto de este estilo se puede desarrollar perfectamente entre un par de personas, como ellos mismos dicen: “un número no muy elevado de gente involucrada facilita tener más dinamismo en las decisiones”, y aunque pueda asustar la cantidad de trabajo que es necesario realizar, dos personas, trabajando algún fin de semana y horas libres puede sacarlo en unos cinco meses.
Ante la duda que suele surgir sobre si usar un framework o no, parece ser que la página web ha sido desarrollada completamente por ellos, aunque eso sí, han usado WordPress para el blog y tienen en mente usar un CMS para integrar contenidos a la web.
Sobre el sistema han decidido usar LAMP debido a la sencillez y a la agilidad que aportan. Sobre el tema de hosting, no es dedicado, pero si uno que les sea fácil ampliar de necesidades: “Ello no significa tener un gran servidor dedicado, sino uno que nos permita crecer sin problemas. Siempre es aconsejable tener un cierto dinamismo en este punto ya que los sistemas de una web deben permitir reaccionar rápido ante un incremento del ancho de banda o de la capacidad tanto de almacenamiento como de proceso.”
Según lo que se obtiene de ellos, es posible realizar nuestros propios proyectos, incluso con presupuesto cero, solo es necesario ponerle ilusión y trabajo.
Gracias a ambos por compartir con nosotros vuestra experiencia.
Escapada Rural

| |

Convirtiendo XML a JSON con PHP5 DOM y XSL

JSON es un formato de datos de intercambio de Javascript que el auge de AJAX ha hecho muy popular. En javascript es mucho más cómodo trabajar con JSON frente a XML ya que podemos analizarlo rápidamente utilizando eval().

Cuando queremos trabajar con API´s como las de Amazon, Technorati, del.icio.us o Ficrk vía REST nos encontramos con que todas ellas devuelven los datos en XML. Gracias a PHP5 y utilizando sus extensiones DOM y XSL podemos transformar un documento XML en JSON de forma muy sencilla.

Veamos un ejemplo de cómo hacer esto con una consulta a la API de Technorati:

En primer lugar vamos a componer la URL con la que haremos nuestra consulta:


$technoratiApiKey = "introduceTuAPIdeTechnorati";
$url = "http://api.technorati.com/tag";
$tag = "usabilidad";
$request=$url."?key=".$technoratiApiKey."&tag=".urlencode($tag);

Y ahora creamos un nuevo objeto DOM y cargamos nuestro el fichero XML que nos devuelve la consulta:


$inputdom = new DomDocument();
$inputdom->load($request);

Para transformar los datos utilizaremos un xml2json.xsl, un fichero XSLT que tiene las instrucciones para transformar XML en JSON. Lo cargamos en un nuevo objeto DOM:


$xslt = "xml2json.xsl";
$xsl = new DomDocument();
$xsl->load($xslt);

¿Qué nos falta? pues: crear un procesador de XSLT en PHP, cargar nuestra xslt, realizar la transformación y generar el documento:


$proc = new XsltProcessor();
$xsl = $proc->importStylesheet($xsl);
$newdom = $proc->transformToDoc($inputdom);
print $newdom->saveHTML();

Próximamente veremos cómo utilizar esta técnica para procesar información de diversas API´s REST mediante AJAX.

ForumMatrix: ayuda para elegir herramienta para foros

forummatrix.pngSi te encuentras en la situación de querer instalar un foro en tu sitio web y no sabes cual elegir, entonces ForumMatrix va a serte de mucha utilidad ya que te facilita esa labor.
Mediante la comparación de características de los distintos foros, podemos saber cual es el que más nos conviene. Las características se agrupan por generales (lenguaje de programación, licencia, precio, utf-8), almacenamiento de datos (diferentes bases de datos o hosting), post (si admite emoticones, HTML, editor WYSIWYG), foros (categorías, subforos), notificación (feeds, email), comunidad (avatares, karma, mensajes privados), moderación, búsquedas, personalización (idiomas, plantillas), características especiales, anti-spam y manejo de datos.
A parte de la comparación, dispone de un wizard que nos ayuda a elegir cual nos conviene según unas preguntas que nos realiza. De los creadores de ForumMatrix también existen otros comparadores interesantes: WikiMatrix, PodcatcherMatrix.
ForumMatrix
Vía / blogoff / Desarrollador.info