El diseño no es una cuestión estética

El otro día me junté a comer locro con un viejo amigo mío —uno que en algún momento supo jugar al poliladron en los pasillos de nuestra escuela primaria, y que el presente lo encuentra abogado— y no sé cómo terminamos hablando de diseño. Noté en aquel momento que debía hacer una brevísima introducción explicándole qué es (como si tal cosa fuese posible), y comencé diciendo que “el diseño no es una cuestión estética”.

Continué contándole por qué el diseño es función, materiales, técnica, y varios etcéteras que ahora no vienen al caso. Lo que sí nos importa, es que a la mañana siguiente me desperté un tanto inquieto pensando no sólo por qué demonios había dicho eso, sino además cómo fue que eso había aparecido con tanta naturalidad en mi discurso, como un terrible lapsus freudiano favorecido por el vino que acompañaba al riquísimo locro picante de El Sanjuanino.

Cuando tuve tiempo para analizar el asunto entendí que al decir aquello, lo hice desde el lugar de diseñador moderno (utilizo aquí la palabra “moderno” no como sinónimo de novedoso, nuevo, etc., sino refiriéndome a la ideología o movimiento específico dentro de la historia del diseño). A nivel formal, el diseño moderno basó su revolución en la búsqueda de la pureza y la no arbitrariedad: la forma debía seguir la función. En este sentido, el diseñador industrial Dieter Rams escribió una serie de máximas para el buen diseño que listo a continuación:

  • Gutes Design ist innovativ.
  • Gutes Design macht ein Produkt verständlich.
  • Gutes Design ist ästhetisch.
  • Gutes Design macht ein Produkt brauchbar.
  • Gutes Design ist unaufdringlich.
  • Gutes Design ist ehrlich.
  • Gutes Design ist langlebig.
  • Gutes Design ist konsequent bis ins letzte Detail.
  • Gutes Design ist umweltfreundlich.
  • Gutes Design ist sowenig Design wie möglich.
  • El buen diseño es innovador.
  • El buen diseño hace útil al producto.
  • El buen diseño es estético.
  • El buen diseño hace comprensible al producto.
  • El buen diseño es honesto.
  • El buen diseño es no-intrusivo.
  • El buen diseño es duradero.
  • El buen diseño se prolonga hasta el último detalle.
  • El buen diseño está comprometido con el medio ambiente.
  • Buen diseño significa tan poco diseño como sea posible.

Sipt, uno de los ítems de la lista dice que el buen diseño es estético. Pero vale la pena aclarar que lo dice en tanto que:

La calidad estética de un producto es parte integral de su utilidad ya que los productos que utilizamos diariamente afectan a nuestra persona y nuestro bienestar; pero sólo los objetos bien ejecutados pueden ser hermosos. (fuente)

Es decir que el diseño moderno le daba importancia a la cuestión estética sólo en tanto y en cuanto consideraba al bienestar del usuario como una de las funciones del objeto, y lo estético como medio para satisfacer esa necesidad.

Cuando desaparece el valor estético en sí mismo, y se pierde la posibilidad de la arbitrariedad en la forma, todo pasa a depender de la dimensión funcional del objeto: incluyendo su forma.

Dándole aún más vueltas al asunto, comprendí que cuando dije “el diseño no es una cuestión estética”, lo que estaba significando, en definitiva, era que el diseño no es arte. Claro, en lindo brete me metí. Si la Estética es la raíz filosófica encargada de pensar el terreno de lo bello y lo feo, pues entonces es la encargada de pensar el arte; si el diseño no es de interés estético —es decir, si no se relaciona con lo bello y lo feo—, es de interés utilitario: su importancia radica en lo útil o inútil de su producción.

Sin embargo, al pensar al diseño como en el terreno de lo útil únicamente algo hace ruido… verdad? Sí, sé que al decir esto sufriré el ataque de una horda de zombies modernos, pero creo que prefiero correr el riesgo. Después de todo, el diseño es, también, una cuestión estética.

Publicada en diseño, instantáneas | Etiquetas | 8 Comentarios

Carga de archivos en AS3

Antes y después

El lengueja de programación de la Plataforma Flash ha pasado por 3 versiones: ActionScript 1, ActionScript, 2 y ActionScript 3. Como sabemos, varias cuestiones han cambiado en el paso de AS2 a AS3. La carga de archivos externos es una de ellas. Si bien la traducción literal es más o menos sencilla, vale la pena repasarla.

Lo que en AS2 solíamos hacer así:

loadMovie("archivo_secundario.swf", this);

En AS3 se debe hacer así (el ejemplo citado a continuación está copiado de la documentación de Adobe, y luego ligeramente modificado):

import flash.display.*;
import flash.net.URLRequest;
var cargador:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("archivo_secundario.swf");
cargador.load(urlReq);
this.addChild(cargador);

Más allá de lo que se puede ver a golpe de vista, hay un par de cuestiones interesantes que trataré de sacar a la luz en este post.

El ejemplo de Adobe:

Antes de crear nuestro propio ejemplo —seguramente más complejo— repasaremos lo que hicieron los muchachos de Adobe. El ejemplo original se incluye en la documentación de la clase Loader (encargada de la carga de archivos externos en AS3).

Se importan las clases necesarias para la realización de la carga de un archivo externo. Nosotros lo haremos de forma detallada cuando nos toque crear nuestro propio ejemplo. Adobe ha sido un poco vago al importar todas las clases del paquete flash.display sin mayores precisiones (como podrán ver ustedes mismos, ésta no es una práctica muy amigable ya que el paquete flash.display contiene numerosas clases que no están siendo utilizadas por el resto del código).

// importar las clases necesarias:
import flash.display.*;
import flash.net.URLRequest;

Se crea una instancia de la clase Loader, que hará las veces de cargador. Este tipo de objeto (que hereda de la clase DisplayObjectContainer) tiene la funcionalidad necesaria para realizar la carga.

// crear el cargador:
var cargador:Loader = new Loader();

Se prepara una instancia de URLRequest, el tipo de objeto que espera recibir el método load de la clase Loader.

// preparar la URL request:
var urlReq:URLRequest = new URLRequest("archivo_secundario.swf");

Efectivamente se da la orden de carga por medio de la función load, incluyendo como parámetro a aquel objeto de tipo URLRequest que creamos anteriormente.

// se da la orden de carga:
cargador.load(urlReq);

Hasta aquí, la carga del archivo externo ya se puso en marcha, pero aún queda agregarlo a la escena. La siguiente línea de código agrega al cargador (de tipo Loader) a la escena, como child del root. Siendo que los objetos de clase Loader heredan de DisplayObjectContainer, tienen la posibilidad de agregarse a la Display List, al igual que un MovieClip o un Sprite.

// poner el cargador en escena:
this.addChild(cargador);

Recordemos el código completo, comentado:

// importar las clases necesarias:
import flash.display.*;
import flash.net.URLRequest;
// crear el cargador:
var cargador:Loader = new Loader();
// preparar la URL request:
var urlReq:URLRequest = new URLRequest("archivo_secundario.swf");
// dar la orden de carga:
cargador.load(urlReq);
// poner el cargador en escena:
this.addChild(cargador);

A primera vista, parece mucho más complejo que la escueta versión en AS2 (y lo es), pero en programación menos no siempre es más. El cambio a AS3 nos facilita la resolución de errores y la generación de diferentes funcionalidades. El código nuevo ganó en complejidad, pero también en coherencia, orientación a objetos, facilidad en la solución de errores y funcionalidad.

Veremos un poco más a fondo el asunto en la siguiente página…

Publicada en desarrollo web, programación, tecnología | Etiquetas , , , | 2 Comentarios

An apple a day…

…keeps doctor away.

Cortito y al pie. La semana pasada llevé mi antigua MacBook a reparar a Alfauno (servicio técnico autorizado de Apple): tenía algunas rajaduras en la carcasa y hacía tiempo que se había vencido la garantía de 1 año.

Al día siguiente me llamaron para avisarme que la computadora ya estaba lista para retirar, cambiada toda la pieza rajada, el teclado, el pad, y el botón del pad. El arreglo fue por cuenta de Apple, por lo que me salió $0 (ni siquiera tuve que abonar la mano de obra). Fui a buscar la compu el viernes, y estaba impecable.

Ayer, a dos días del arreglo, recibo mail oficial de Apple, solicitándome que responda una encuesta de satisfacción acerca del servicio prestado por el proveedor de servicios autorizado.

Estimado cliente de Apple:

Apple quisiera conocer tu opinión respecto de la reciente reparación de tu MACBOOK en un Proveedor de Servicios Autorizado Apple.

No voy  a negar que dicho mail me sorprendió absoluta y gratamente. Al final de la encuesta, podemos elegir enviar las respuestas únicamente a Apple, o también al proveedor de servicios que realizó la reparación. Nice.

Anécdotas adicionales:

  • Conozco gente que ha comprado notebooks de otras marcas en Europa, y tras un desperfecto no le quedó otra que enviar por correo la computadora para hacer valer la garantía en el lugar de origen. El soporte de Apple es global y no requiere la muestra de ningún comprobante, garantía impresa, o factura de compra (el producto de Apple en cuestión es lo único necesario).
  • Conozco casos de iMacs de 4 años de antigüedad a las que les falló el monitor y también fueron reparados sin cargo (si sos uno de ellos, no dudes en acercar tu compu a un proveedor de servicios autorizado, aún con la garantía vencida).

Nada más… quería, simplemente, hacer público mi agradecimiento.

Thanks Steve!

Publicada en instantáneas | Etiquetas , , | 4 Comentarios

La travesía de la forma

Recomiendo un libro que creo indispensable para diseñadores, o interesados en la historia del diseño gráfico en la Argentina: La travesía de la forma, de Verónica Devalle.

El libro es genial y absolutamente inspirador en cuanto a labor investigativa. A lo largo del desarrollo del texto se hace un análisis exhaustivo de los orígenes del término diseño gráfico y de sus prácticas.

Sobre Verónica Devalle:

Licenciada en Sociología, doctora en Artes por la Universidad de Buenos Aires y magíster en Sociología de la Cultura y Análisis Cultural por la Universidad de San Martín. Se desempeña como profesora adjunta de Comunicación I y profesora titular de Diseño y Estudios Culturales, ambas de la carrera de Diseño Gráfico de la Facultad de Arquitectura, Diseño y Urbanismo (FADU/UBA). En la misma institución es coordinadora y profesora de la Maestría en Diseño Comunicacional (DICOM). Es investigadora del Conicet y directora de proyectos UBACyT, en el marco de la FADU. Sus temas articulan la reflexión sobre el arte, el diseño y la cultura visual contemporánea.

Publicada en diseño, libros | Etiquetas , | Dejar un comentario

Explorer go home

Quienes trabajamos en el desarrollo de sitios web sabemos que el Internet Explorer, de Microsoft, es de lo peor. Lo sabemos, no por nuestro fanatismo geek, los numerosos artículos que versan sobre sus vulnerabilidades en materia de seguridad, o por boca de terceros, sino porque sufrimos diariamente sus caprichos y su incorrecta interpretación de código HTML y CSS.

Cuando terminamos de escribir el código y los estilos de un sitio, cuidando que todo esté acorde a los estándares dictados por la W3C, y pasamos a testearlo en diferentes navegadores, vemos que la mayoría muestra las páginas de la forma esperada… la mayoría, salvo el Internet Explorer. De ahí que estamos obligados a introducir hacks —en muchos casos incluso código no estándar— para reparar el problema. Este fenómeno suma horas, complicaciones inesperadas, incertidumbre y stress a nuestra tarea de desarrollo.

Una posible solución a largo plazo, es procurar que los usuarios elijan otros navegadores y dejen de utilizar IE (algo que está ocurriendo: las estadísticas de los últimos años muestran cómo viene perdiendo terreno el que alguna vez fue el navegador más utilizado).

Educar al soberano:

Dejar de incluir hacks en los sitios que desarrollamos sería una buena táctica; algo así como una guerrilla de insurrectos desarrolladores web —aunque convengamos que sería complicado explicarle a nuestro cliente que ve su sitio destartalado porque está utilizando Internet Explorer, que es el peor navegador, y entonces debiera cambiarlo y utilizar Firefox, o Chrome o Safari, lo mismo que los demás visitantes del sitio—. Eso es imposible. El cliente quiere que su sitio se vea perfecto en todos los principales navegadores, especialmente en el bendito Explorer.

Estos pocos días que transcurrieron desde que puse en marcha mi blog personal me han enseñado mucho. Ayer, por ejemplo, pensé que tener un sitio web personal implica hacer lo que se me de la gana. Decidí que no agregaría hacks para solucionar los errores de interpretación de IE, y que aportaría mi granito de arena para explicarle a los navegantes usuarios de Explorer que les convenía utilizar otros navegadores. Decidí incluir un cartel —visible únicamente para usuarios de IE— que los alerte e invite a probar otras alternativas.

Hay muchas maneras de presentar contenido únicamente a Internet Explorer. Voy a explicar a continuación cómo está resuelto en el caso de este sitio web en particular.

A modo de receta de cocina, diré que haremos uso de:

  • los comentarios condicionales de IE.
  • un poco de javascript no intrusivo.
  • css a gusto para condimentar.

Comentarios condicionales:

Quizás porque la gente de Mircosoft sabe que su navegador deja mucho que desear, inventaron una forma fácil para que los desarrolladores podamos escribir código que sólo el IE pueda ver; lo hicieron en la forma de comentarios de HTML, pero con una estructura estándar que el IE leerá.

Haciendo uso de esta posibilidad, podemos agregar un archivo JavaScript externo, que sólo IE verá. Escribiendo el siguiente código dentro de la etiqueta head:

<!--[if IE]>
    <script type="text/javascript" src="ruta_al_archivo_javascript.js"></script>
<![endif]-->

Los demás navegadores verán eso como parte de un comentario de HTML, y no cargarán el JS externo.

Un poco de JS no intrusivo:

A continuación, utilicé un poco de JavaScript para escribir contenido en el HTML. ¿No podría haber escrito el código HTML directamente dentro de la etiqueta body, utilizando los comentarios condicionales propios de IE? Sí, lo podría haber hecho, pero preferí utilizar JS porque no quería ensuciar el código HTML (ni siquiera con un “comentario”) con todo este asunto. Cada cual podrá sopesar qué le conviene, según el caso.

El código JS será algo así:

// definir la funcion escribirCartelIE:
function escribirCartelIE() {
    // chequea que funcione el control del DOM desde JS:
    if (!document.getElementsByTagName){
        return;
    }
    // crear una referencia al body:
    var body_element = document.body;
    // modificar el contenido del body, agregándole un poco de HTML al principio:
    body_element.innerHTML = '<div id="cartel_ie"><p>Ups! Est&amp;aacute;s utilizando Internet Explorer.</p><p>El <strong>Microsoft Internet Explorer</strong> es un navegador web inseguro, inc&amp;oacute;modo y cuya habilidad para mostrar correctamente las p&amp;aacute;ginas web deja mucho que desear. Por fortuna, no es el &amp;uacute;nico navegador que existe en el mercado. Te recomiendo que pruebes alguno de los siguientes navegadores:</p><ul><li><a href="http://www.mozilla.com">Mozilla Firefox</a></li><li><a href="http://www.google.com/chrome">Google Chrome</a></li><li><a href="http://www.apple.com/safari/">Apple Safari</a></li><li><a href="http://www.opera.com">Opera</a></li></ul></div>' + body_element.innerHTML;
}
// hacer todo cuando se cargue el HTML:
window.onload = escribirCartelIE;

Desde ya, el mensaje puede ser otro. Estoy seguro de que tendrán más imaginación que yo a la hora de redactar el texto.

Fíjense que no incluí código JS en el html. Recuerden que es siempre conveniente mantener separado el contenido (HTML), de la presentación (CSS) y del comportamiento (JS).

CSS a gusto:

Cuando el IE termine de cargar la página, ejecutará la función escribirCartelIE, que modificará el contenido del HTML. A partir de ese momento, el HTML literalmente tendrá nuevos elementos: un div con id cartel_ie y su contenido.

Las órdenes de cómo deben presentarse estos elementos, pueden estar junto con los demás selectores, en el archivo CSS que se esté usando. Esto no afecta al resto del contenido del CSS. Los navegadores que no tengan ese elemento en el HTML, no aplicarán esas órdenes del CSS.

Aquí, a modo de ejemplo, el código CSS que se está utilizando en este sitio:

/* css para IE */
#cartel_ie {
    width: 428px;
    padding: 10px;
    border: 1px dotted #F0F;
    font: 13px/1.5em Georgia, "Times New Roman", Times, serif;
    margin: 10px auto 5px 249px;
}
#cartel_ie .titulo {
    font: 16px "Courier New", Courier, mono;
    color: #F0F;
}

¡Los invito a hacer una movida similar en sus sitios web personales! Un pequeño banner no basta.

Publicada en desarrollo web, tecnología | Etiquetas , , , , , , | 4 Comentarios

Un buen video-clip

El simpático video-clip de la banda OK Go, del tema Here it goes again, es de los más vistos en YouTube, con más de 49 millones de vistas según la Wikipedia. Este tipo de popularidad no siempre se debe exclusivamente a la calidad del producto, pero creo que en este caso la calidad es determinante.

Las características propias del género video-clip, imponen a una pieza de este tipo: síntesis, coherencia en todas sus dimensiones, y un partido conceptual fuerte (que determinará, en definitiva, esta coherencia). La cultura proyectual me enseñó —a veces a los golpes— que en un proyecto ningún elemento sobrevive sin finalidad: si su aporte no resulta significativo para la pieza, el elemento en cuestión podrá desaparecer, también, sin acarrear una pérdida significativa.

Decía, entonces, que el video-clip requiere —quizás más que otros géneros— síntesis, coherencia y un partido conceptual fuerte porque se trata de mantener el goce y la atención del espectador por un lapso de tiempo muy corto, cuando en realidad quien está mirando probablemente vio, y verá otros veinte o treinta videos uno detrás de otro. Sin estas consideraciones, la pieza pierde potencia y pasa desapercibida, o se mimetiza con el ruido de la programación, de por sí ruidosa, de canales como VH1 o Mtv.

El fin de semana volví a ver este video después de mucho tiempo, y lo encontré genial justamente porque lleva a la práctica con gracia estas cuestiones.

Todo se encuentra filmado con cámara fija y los únicos elementos en movimiento son los cuatro músicos. La composición es contundente y goza de una simetría envidiable; aparenta cierta desprolijidad en consonancia con el estilo de música: el cuadro, la posición de los aparatos de gimnasia y el fondo parecen estar puestos sin mucho cuidado, pero un análisis más precavido (si miramos, por ejemplo, las agarraderas de los aparatos) saca a la luz un ordenamiento simétrico absolutamente obsesivo.

La simetría vuelve a repetirse en la vestimenta de los cuatro músicos: el fucsia está alternado en el primer par (en los pantalones de uno y  la camisa del otro), mientras que el borravino y negro se encuentran intercalados en el segundo par.

Los artefactos tampoco están elegidos al azar y determinan casi por completo el tipo de video que vemos. Toda la coreografía se basa en la funcionalidad de este tipo de aparato de gimnasia (éste, y no otro): tanto en su uso convencional (el movimiento de la cinta), como en su uso no planificado, que implica una violación del uso oficial del objeto, como cuando los músicos se trepan a las agarraderas.

Los movimientos juegan con la simetría, al tiempo que mantienen esa aparente desprolijidad que veíamos en la disposición de los objetos y la cámara. Al tratarse de personas que no son bailarines, la asincronía en sus movimientos se da de forma muy natural.

No quiero extender mucho más el post; quería, simplemente, compartir las impresiones que tuve el fin de semana mientras recordaba este video gracias a la televización que VH1 hizo en un countdown del estilo “temas para el gym”.

Publicada en arte, diseño | Etiquetas , , , , , | 3 Comentarios