Kroonos: un banco… ¡de tiempo!

Me escribe Jesús Hurtado, CEO de Kroonos, solicitándome que le ayude en la promoción de su web ya que pronto (el 31 de octubre) dejará de estar abierto el registro de usuarios; a partir de entonces, será necesaria una invitación.…

Me escribe Jesús Hurtado, CEO de Kroonos, solicitándome que le ayude en la promoción de su web ya que pronto (el 31 de octubre) dejará de estar abierto el registro de usuarios; a partir de entonces, será necesaria una invitación. Una mención en este blog no le va a causar ninguna avalancha de visitas, pero aquí queda esto. 🙂

Logo de Kroonos

El sitio web se autodefine así:

Kroonos es una web 2.0 que te permitirá sacarle partido a tu tiempo libre. Un banco del tiempo global donde podrás dar y recibir ayuda de forma gratuita de otros miembros de la comunidad.

Por el momento no se puede acceder directamente a ninguna funcionalidad específica del sitio; ésta se puede intuir buceando en el foro, en el blog, etc.; pero la falta de algo más tangible posiblemente le resta cierto atractivo a la hora de registrarse. Eso sí; el concepto de una comunidad en la que los usuarios intercambian tiempo para obtener otras cosas a cambio suena lo suficientemente interesante como para tomar nota y seguir su evolución. Yo ya me he registrado.

En lo que respecta al diseño, sin hacer un análisis profundo (es decir, echando un vistazo), el aspecto de la página es bastante claro y agradable. En el caso de una web con un propósito tan original es de agradecer el texto que lleva por título “¿Qué es Kroonos?”, en el que se describe su objetivo, aunque como comenté anteriormente se echa de menos una visión más concreta de la funcionalidad que ofrecerá el sitio.

Por último, no puedo evitar que me venga a la memoria Momo, la novela de Michael Ende en la que unos misteriosos hombres grises se fumaban el tiempo de la gente. Seguiremos el desarrollo de Kroonos, aunque sea sólo para comprobar de qué otros extraños modos consume la gente su tiempo.

Patrones de software, MVC y los teléfonos móviles

Casi todos los que nos hemos dedicado en algún momento al desarrollo de aplicaciones reconocemos la importancia de mantener separados el contenido y la presentación; es decir, independizar qué hace la aplicación de cómo lo muestra al usuario. Yendo un…

Casi todos los que nos hemos dedicado en algún momento al desarrollo de aplicaciones reconocemos la importancia de mantener separados el contenido y la presentación; es decir, independizar qué hace la aplicación de cómo lo muestra al usuario. Yendo un paso más allá, el patrón MVC propone una separación del software en tres partes:

  • Modelo (model): la información con la que trabaja la aplicación (“los datos”). Habitualmente esta parte está soportada por un sistema de base de datos.
  • Vista (view): cómo interacciona el usuario con la aplicación (“la interfaz”). En una aplicación web suele utilizarse HTML y CSS.
  • Controlador (controller): las acciones que realiza la aplicación (“el comportamiento” o “la lógica”).

Esquema MVC (Model-View-Controller)

Muchos frameworks de desarrollo siguen este patrón, ya que las ventajas de esa separación son múltiples: la aplicación resulta más modular, más flexible, facilitando cambios en una de las partes sin necesidad de modificar el resto.

Por ejemplo, una aplicación desarrollada siguiendo ese patrón permitiría fácilmente cambiar el gestor de base de datos (el modelo) sin necesidad de modificar el resto de la aplicación; o desarrollar cada una de las partes de modo independiente; o acceder a la misma aplicación desde diferentes dispositivos como navegadores web o móviles, simplemente creando diferentes vistas.

¿Este patrón no queda del todo claro? ¿Sus ventajas no resultan tan evidentes? Puede que lo comprendamos mejor si establecemos un símil con algo que casi todos conocemos: la estructura de los teléfonos móviles.

(more…)

Esto es el progreso

A menudo se dice que lo importante de lo que aprendes en la universidad no son los conocimientos técnicos concretos (esos que, sobre todo en informática, se convierten en obsoletos en cuestión de meses), sino una disciplina de trabajo, una…

A menudo se dice que lo importante de lo que aprendes en la universidad no son los conocimientos técnicos concretos (esos que, sobre todo en informática, se convierten en obsoletos en cuestión de meses), sino una disciplina de trabajo, una base amplia de cultura, la experiencia…

El progreso, en una pizarraYo me quedo con unas pocas frases pronunciadas por los profesores, de esas que en el momento parecen triviales pero que tienen ocasión de volver a la memoria años después, acompañadas de un “pues sí que tenía razón, sí”.

Una de ellas fue durante una clase de Josep Miró Nicolau (catedrático emérito de la UIB y premio Ramon Llull de la Comunitat Autònoma de les Illes Balears), al que tuve como profesor de Inteligencia Artificial en diferentes años de mi Ingeniería en Informática; su mérito fue dar la mejor definición de progreso que conozco.

Durante una de sus clases, intentó escribir algo en una pizarra para apoyar su explicación. La pizarra consistía en uno de esos paneles blancos de plástico sobre los que se escribe con rotulador y, como suele ocurrir, el rotulador apenas tenía tinta. Lo intentó con un segundo rotulador de diferente color, pero tampoco escribía demasiado bien. Después de un tercer intento con otro color, sin éxito, se giró hacia nosotros, y nos dijo con tono resignado:

“¿Véis? Esto es el progreso. Antes escribíamos bien, pero con un único color. Ahora escribimos mal, pero con muchos colores.”

¿Funciona Google como un gran cerebro?

Aunque en cierto sentido podemos ver a Google como un “gran ojo” (no sólo por las imágenes que nos ofrecen Google Maps y Google Earth, sino también porque parece “ver” todo lo que se escribe en la red), lo cierto…

Aunque en cierto sentido podemos ver a Google como un “gran ojo” (no sólo por las imágenes que nos ofrecen Google Maps y Google Earth, sino también porque parece “ver” todo lo que se escribe en la red), lo cierto es que el funcionamiento de su aplicación base, el buscador, se parece más al de un inmenso cerebro.

Logo de Google con dos cerebros

Los detalles del proceso que permiten a Google ofrecer tan buenos resultados en las búsquedas no son públicos; además, según Google indica, dicho proceso se actualiza continuamente. Sin embargo, sí se conoce que la parte fundamental de ese proceso es el algoritmo PageRank, que asigna un valor numérico a las páginas publicadas en Internet; las páginas con mayor PageRank aparecen en los primeros lugares en los resultados de búsqueda aunque, como ya hemos dicho, existen otros muchos factores “no públicos” para calcular esos resultados (por ejemplo, la frecuencia de aparición de los términos buscados en la página). Sin entrar en sus detalles, lo que resulta interesante es que el algoritmo de cálculo del PageRank funciona de modo similar a como lo hacen las neuronas en el cerebro. Veamos por qué.

(more…)

No more double submits in web forms

Usually, submit buttons in web forms should be clicked just once; but many users click them twice or more. Why? Because they’re used to launch actions by double clicking (as on Windows icons). Because the server doesn’t replies instantantly, and…

Usually, submit buttons in web forms should be clicked just once; but many users click them twice or more. Why?

  • Because they’re used to launch actions by double clicking (as on Windows icons).
  • Because the server doesn’t replies instantantly, and they click again “just to see if something happens”.

What’s the result? The form data is sent twice to the server, and users usually don’t realize it; they just get the response to one of the submits. Try this simulation to see what happens when submitting several times the form before the server response arrives:

reset

This is not a big issue if it’s, for instance, a search form: the query is being launched twice but the user simply gets the result. It may be annoying if someone is receiving the same mail several times just because users are submiting several times the contact form. And it’s a real big problem when the user is submiting a payment (you can be pretty sure they don’t want to pay twice the same object!).

The solution

There’s an easy solution for that problem! Simply disable the button just after the form is submitted, and you can change the button text too. The result is something like this:

reset

This is done using the onsubmit form event:

<form onsubmit=document.forms['formname'].submitbutton.disabled=true;
document.forms['formname'].submitbutton.value='Sending...';" action="action" name="formname">
  <!-- some form controls here -->
  <input value="Send" name="submitbutton" id="submitbutton" type="submit">
</form>

With this technique, you achieve two positive effects:

  • avoiding the double submit problem; and
  • giving feedback to the user confirming the submit

Of course, there’s no perfect solution. If JavaScript is disabled at the browser, it doesn’t works; if it’s really important avoiding multiple submits (for instance, when it’s an economical transaction), it should be done at server’s level.

It’s really simple to use and without negative effects. Try it if you are really tired of multiple submits and tell me how it goes!

Something I still miss in Google Analytics

Google Analytics has a nice new interface, much more intuitive and usable, but I still miss something I think it would be really usefull: an integrated calendar of events. I can select a range of dates at Google Analytics and…

Google Analytics has a nice new interface, much more intuitive and usable, but I still miss something I think it would be really usefull: an integrated calendar of events.
I can select a range of dates at Google Analytics and get different statistics: visits, unique users, etc. But there are many events (internal and external) that may affect that data. For instance:

  • Changes at the site: contents, layout, etc.
  • Changes in Google Analytics configuration (for instance, in filters)
  • Google Adwords campaigns linking to that site
  • etc, etc.

Any webmaster would be happy to know how those events are related to the statistics, wouldn’t they?

How could Google do that? We already have a solution: Google Calendar. So we simply would associate a site monitorized by Google Anlytics to a calendar in Google Calendar. A webmaster could add events to that calendar, and they would be shown at Google Analytics.

Here’s an example; this graph shows a decrease in the number of visits on June, 2nd:

Google Analytics graph (without events)

Hmmm… What happened that day? Oh, maybe that new filter to exclude inner visits. With the feature I suggest, I would link the Google Analytics account with a Google Calendar which includes events related to the site, like this:
(more…)

Twitter y algunas cuestiones de usabilidad

Después de escribir sobre las características básicas de Twitter, voy a intentar dar un punto de vista más crítico sobre sus características. Para empezar, el tagline de su web define perfectamente su propósito: “What are you doing?“; cualquiera sabe hacer…

Después de escribir sobre las características básicas de Twitter, voy a intentar dar un punto de vista más crítico sobre sus características.

Twitter?

Para empezar, el tagline de su web define perfectamente su propósito: “What are you doing?“; cualquiera sabe hacer eso: explicar qué está haciendo. Pero tengo la impresión de que su uso se está extendiendo más entre los usuarios técnicos y los interesados en analizarlo como fenómeno social, pero no tanto entre la gran masa de usuarios menos avanzados.

¿Por qué? Uno de los motivos parece obvio: no tiene soporte oficial para MSN Messenger. El cliente de Microsoft es el más extendido entre los usuarios “domésticos”; y a pesar de que el precedente inmediato de Twitter sea la línea de estado de Messenger, no parece sencillo que sus usuarios se pasen a otro programa de mensajería instantánea sólo por usar Twitter. Existen algunas alternativas third party para “twittear” desde MSN (como Twessenger), pero desconozco hasta qué punto funcionan correctamente.

Por supuesto, los usuarios de MSN Messenger pueden enviar y recibir mensajes de Twitter desde el navegador, pero es un acceso mucho menos directo que la mensajería instantánea. También utilizando el teléfono móvil, pero es menos sencillo de usar (y enviar SMS cuesta dinero).

Además de esto, hay algunas cuestiones de usabilidad en la web de Twitter que son mejorables.

(more…)

(Otro) artículo sobre Twitter

Twitter es la aplicación de moda en la web, tanto por lo rápido que se está extendiendo entre los usuarios como por los múltiples análisis que se han hecho como fenómeno social y de negocio y, últimamente, por los problemas…

Twitter es la aplicación de moda en la web, tanto por lo rápido que se está extendiendo entre los usuarios como por los múltiples análisis que se han hecho como fenómeno social y de negocio y, últimamente, por los problemas técnicos que está provocando ese crecimiento ultra-rápido.

Logo de Twitter

Todo el mundo parece estar escribiendo sobre Twitter, así que este artículo será otro más. 🙂

Antes de nada: ¿qué es Twitter?

Si quieres ahorrarte el rollo y empezar a probarlo ya, entra en esta página para ver mis mensajes, y haz click en Join for Free! para darte de alta.

Es probable que ya lo sepas; encontrarás mucha información en la red, pero se puede resumir en lo que reza el slogan de su página: “What are you doing?” (“¿Qué estás haciendo?”). La idea es poder transmitir brevemente, en una frase, lo que estás haciendo en ese momento: en una reunión; de compras; visitando una página… En definitiva: un modo de comunicar (y saber) lo que se hace en cada momento a las personas que conoces (¡o no!).

Claro que eso se podría explicar en un blog personal, pero es demasiado trabajo publicar un artículo sólo para explicar que estás viajando en avión; no merece la pena. También se podría utilizar la mensajería instantánea (leáse Messenger, Google Talk, etc.), pero sería enviando un mensaje a los usuarios (probablemente sólo a los conectados, y puede que fuera molesto recibir esos mensajes).

(more…)

En el USID’07 de Barcelona

El pasado lunes 23 de mayo estuve en Barcelona en la 4ª Jornada de Usabilidad en Sistemas de Información Digital (USID’07). Sobre las diferentes ponencias de la mañana y el seminario de la tarde he escrito en el blog del…

El pasado lunes 23 de mayo estuve en Barcelona en la 4ª Jornada de Usabilidad en Sistemas de Información Digital (USID’07). Sobre las diferentes ponencias de la mañana y el seminario de la tarde he escrito en el blog del grupo SQUaC.

En un aspecto más personal, hay varias cosas que tengo que destacar:

Tengo la impresión de que la mayoría de los asistentes pertenecían al mundo de la biblioteconomía y la documentación, y no tanto al mundo técnico (una de las pistas era la gran proporción de público femenino). Es curioso ver cómo a la usabilidad se llega desde diferentes ámbitos: la informática, la psicología, la documentación…

Peter Morville, la “estrella” de la jornada y autor de un conocido libro sobre Arquitectura de Información (Information Architecture for the World Wide Web ), mostró algunas versiones “alternativas” de la portada de su libro. Si no le entendí mal, sugirió que podría hacerse lo mismo para una versión española. Esta es la versión original:

Information Architecture for the World Wide Web

Y estas son mis propuestas para la versión española:

Information Architecture for Spanish (lynx)Information Architecture for Spanish (bull)

El lince está bien como animal representativo, ¿no? Además, ya que está en peligro de extinción… Y el toro es un dibujo de Picasso, así que supongo que eso anula cualquier implicación política que uno pudiera tener (siempre hay quien la encuentra).

Por último, una de las ponencias (Minería web para mejorar sitios web, por Ricardo Baeza-Yates, de Yahoo! Research) me sonó muy familiar: trataba del análisis del comportamiento de los usuarios para mejorar el diseño de los sitios. Es decir, el tema del que trató mi proyecto final de carrera. No hubo tiempo para preguntas, así que me quedé con las ganas de exponerle alguna cuestión; por ejemplo, ¿cómo influirán técnicas como Flash y AJAX en esos estudios? Imagino que bastante, y no de forma positiva.

En resumen, siempre resulta interesante asistir a este tipo de eventos, tanto por lo que ves y oyes, como por lo que se te ocurre mientras estas ahí.

[Actualización 30-may-2007]

Le envié las imágenes a Peter Morville, el autor del libro, que me comentó sus preferencias por el toro 🙂 ¡Incluso lo ha incluido en su blog!

A valid (X)HTML Flash badge for Twitter

Este artículo está en inglés; supongo que la mayoría no tendréis problemas en leerlo. De todas formas, espero escribir un poco más adelante sobre Twitter; si no quieres esperar, puedes leer alguna página que explique qué es Twitter. O, más…

Este artículo está en inglés; supongo que la mayoría no tendréis problemas en leerlo. De todas formas, espero escribir un poco más adelante sobre Twitter; si no quieres esperar, puedes leer alguna página que explique qué es Twitter. O, más fácil aún, regístrate y podrás añadirme para saber qué estoy haciendo en cada momento. 🙂

I have recently inserted the Flash badge for Twitter in my site; but the original code offered by them is not valid HTML. So why not use code that passes validation? Here it is:

<div style="width: 176px; text-align: center">
 <object width="176" height="176" title="what am I doing... (Twitter badge)" type="application/x-shockwave-flash" data="http://twitter.com/flash/twitter_badge.swf">
  <param value="http://twitter.com/flash/twitter_badge.swf" name="movie" />
  <param value="color1=255&type=user&id=USER_ID" name="flashvars" />
  <param value="high" name="quality" />
  <param value="twitter_badge" name="name" />
  <param value="always" name="allowScriptAccess" />
  <param value="transparent" name="wmode" />
  <param value="http://www.macromedia.com/go/getflashplayer" name="pluginspage" />
 </object>
 <a style="font-size: 10px; color: #0000ff; text-decoration: none" href="http://twitter.com/USER_NAME">follow USER_NAME at http://twitter.com</a>
</div>

And the result is (using my own user data):

Just some comments: