jueves, 15 de abril de 2010

Investigación en GIS


El departamento de investigación de Corex está de enhorabuena pues le han sido aceptados dos artículos en la "1st International Conference on Computing for Geospatial Research & Application" que tendrá lugar el próximo Junio en Washington DC

Los títulos de los trabajos son:


  • "ArchaeoloGIS: Using Geographic Information Systems to Support Archaeological Research", realizado conjuntamente con el investigador José Ferrandis de Forum Unesco-UPV

  • "GIRPharma: A Geographic Information Retrieval Approach to Locate Pharmacies on Duty", llevado a cabo conjuntamente con los investigadores Davide Buscaldi y Paolo Rosso del Laboratorio de Ingeniería Lingüística del DSIC-UPV

Próximamente serán publicados por ACM Digital Library.

¡Enhorabuena!

lunes, 12 de abril de 2010

NACE TIC SYNERGIES


El pasado 8 de Abril de 2010 en la ciudad de Valencia, nace un nuevo consorcio de exporatción de nuevas tecnologias de Valencia para el mundo cuyo nombre comercial es:

TIC SYNERGIES, " www.ticsynergies.com " y lo componen la siguientes empresas especialistas en TIC y empresas con sinergias en este sector, son:





- COREX SOLUCIONES INFORMATICAS " www.corex.es "
- SAI WIRELESS " www.saiwireless.com "
- UVAX CONCEPTS " www.uvax-concepts.com "
- PIXEL STUDIOS " www.pixelstudios.es "
- FACTORY WEB " www.factoryweb.es "
- EQUIPO HUMANO " www.equipohumano.net "

Y con la experiencia en este tipo de consorcios como es, Carnicer y Perete, www.carniceryperete.com, hemos emprendido una nueva aventura en el ambito internacional apostando por mercados como China, la UE, EEUU y americana latiana etc. y contando con empresas con experiencia en el exterior como SAI y UVAX.

Juntandonos estos perfiles de empresas abarcanmos practicamente todas las tecnologias en el sector TIC, incorporando las nuevas tendencias como son semantica, lenguaje natural, investigación social media, teleasistencia, diseño de infraesctruturas sofisticas, hosting, servidores, equipos de control y eletronica, sistemas GIS, tecnologia en recursos humanos etc todo ello detallado en nuestra proxima pagina web la cual estamos contruyendo.

Un abrazo a todos.

viernes, 9 de abril de 2010

XML en Windows Mobile

Uno de los últimos proyectos en los que estoy trabajando consiste en un sincronizador SERVER <-> PDA basado en servicios Web.

Uno de los requisitos es que toda la información con la que trabaje la PDA sean XML de estructura conocida, pues las aplicaciones que pueden haber detrás son múltiples.

Lo anterior es un poco de background del proyecto que no precisa mayor explicación. El objetivo del post es mostrar los resultados de los experimentos efectuados en una Toshiba G810 con Windows Mobile 6.1 en lo que se refiere al tratamiento masivo de XML con una aplicación Microsoft .Net Mobile 3.5 en C#


Los experimentos consisten en parsear un dataset de 5000 registros con un XML cada registro, y este XML con 5 elementos de segundo nivel, esto es, algo como:

<elements><element name="nnn" value="vvv" />...<element name="nnn" value="vvv" /></elements>

Con el resultado, construir un DataSet cuyas cabeceras tengan los nombres de los elementos (atributo name), y cuyas filas los valores contenidos en ellos (atributo value), para poder enlazarlo a un control grid.


Las opciones para parsear son varias, y también los resultados obtenidos:

  • XMLDocument + SelectNodes:

    El primer experimento consiste en utilizar DOM para acceder a los XML individuales. Para cada XML se construye su XMLDocument, se efectúa un SelectNodes y se extrae la información de sus atributos name y value

    Tiempo 1:58min

  • IndexOf + SubString:

    El segundo experimento consiste en utilizar las funciones de tratamiento de cadenas (IndexOf y SubString) para obtener el contenido de name y value de cada nodo

    Tiempo 0:41min

  • XmlDocument + IEnumerator:

    El tercer experimento consiste en utilizar DOM para construir el documento a partir de cada XML, pero en lugar de buscar sus nodos con selectnodes, se recorren sus atributos con su enumerator, comprobando qué atributo estamos leyendo, name o value

    Tiempo 1:49min

  • XMLDocument:

    Tras lo anterior se decide comprobar únicamente la creación del documento DOM y se observa que lleva prácticamente la mitad del tiempo del proceso total

    Tiempo 0:40min

  • RegularExpressions:

    Comprobando el buen resultado de las funciones de cadena frente a las de tratamiento de XML se prueba con una expresión regular que obtiene los valores de los atributos name y value para cada elemento de cada XML.

    Tiempo 1:45min

  • String:

    Puesto que lo que mayor tiempo consume es la construcción del DOM, así como el acceso usando métodos de tratamiento textual es bastante inferior en coste temporal, se prueba a leer y acumular en una variable String cada XML individual para construir un XML global, con el que poder experimentar tanto con DOM como con las funciones de cadena.

    Tiempo 5:41

  • StringBuilder:

    Añadir dinámicamente a una variable tipo String requiere reasignaciones de memoria consecutivas, con lo que se prueba con la clase StringBuilder para al final hacer una conversión a String y poder efectuar experimentos con DOM y con funciones de cadena.

    Resultado OOM Exception


Conclusiones

Las principales conclusiones que se pueden extraer son las siguientes:

  • El tratamiento de XML en un dispositivo móvil, en cualquier caso, es lento

  • No es buena idea realizar un uso intensivo de la memoria (reasignaciones, clases complejas...) porque elevan el tiempo de proceso y provocan fácilmente excepciones del tipo Out Of Memory

  • Los métodos de tratamiento de XML por DOM son lentos frente a búsquedas más rudimentarias con funciones de cadena

  • El tratamiento de las expresiones regulares es lento, por lo que su uso no está justificado siempre que se pueda efectuar el mismo trabajo con funciones de cadena


NOTA: ESTO NO ES UN ESTUDIO RIGUROSO, NO SE HA REPLICADO RESULTADOS, NO SE HAN VAIRADO PARÁMETROS... POR LO QUE, NO TIENE NINGUNA VALIDEZ CIENTÍFICA NI ESTADÍSTICA, PERO DA IDEA DE UNA APROXIMACIÓN A LOS PROBLEMAS QUE SURGEN CUANDO SE DEBE TRATAR GRANDES CANTIDADES DE DATOS XML EN UN DISPOSITIVO MÓVIL Y QUE LA SOLUCIÓN QUIZÁS MENOS ELEGANTE Y MÁS RUDIMENTARIA, ES LA MÁS EFECTIVA

jueves, 1 de abril de 2010

Accesibilidad y Usabilidad en la Web

1. Introducción

La Web evoluciona, y evoluciona porque así lo hacen las necesidades humanas en su infinita necesidad de aprender, crecer y autorealizarse, y una de las mayores evoluciones que ha seguido a esta ( r )evolución de la Web, de una manera tan entrelazada que no se sabe si es consecuencia o motivo, pero en cualquier caso que no podría haber sido sin ella, es la del modo en que se ha ido centrando el interés en el usuario final, y ya no sólo en el contenido y modo de interacción, como veíamos en el artículo de redes sociales, sino en la forma, en el diseño, en el modo de uso, en el concepto de globalización en el sentido más amplio de apertura e integración de culturas y grupos sociales, a la par que su focalización en el individuo individual y la personalización de sus necesidades.

Aquí estamos hablando del concepto de usabilidad en la Web, el cómo el usuario percibe el uso de la misma, y del concepto de accesibilidad, esto es, el cómo la Web permite el acceso a diferentes grupos sociales sin discriminación ni barreras por su condición.

2. Usabilidad en la Web

2.1 Introducción

En [1] se define la usabilidad como “el nivel con el que un producto se adapta a las necesidades del usuario y puede ser utilizado por los mismos para lograr unas metas específicas con efectividad, eficiencia y satisfacción en un contexto específico de uso”.

Según la definición anterior podemos inferir que es el usuario del producto quién determina la usabilidad del mismo, porque le permite alcanzar de manera sencilla y satisfactoria, en términos de efectividad y eficiencia, los objetivos concretos para los que fue diseñado.

Por tanto, el principal hito de la usabilidad es que el diseño debe estar centrado en el usuario, mediante un conocimiento amplio de su contexto de uso, y con el objetivo de satisfacer sus necesidades.

En el desarrollo de la Web, de igual modo que en otros sectores productivos, la usabilidad se ha ido tomando cada vez más en consideración, evolucionando desde un diseño centrado y basado en el creador del sitio y sus propias preferencias y objetivos, hacia un diseño centrado en el usuario final, sus preferencias, necesidades y objetivos.

Respecto al software en general, se viene observando desde hace mucho tiempo que el usuario no muestra un interés especial en la estructura interna de una aplicación, ni incluso en su funcionalidad, sino más bien en cómo usarla y en la interfaz que publica para ello, llegando al extremo de que muchos sistemas no son usados por un mal diseño de ésta última.

Cuando el software en general se particulariza al caso de la Web, dónde la casuística e idiosincrasia de los usuarios es global, un correcto diseño de la interfaz que atienda a las pautas de usabilidad universal no garantizará el éxito de la misma, pero el no hacerlo sí que garantizará su fracaso.

Un ejemplo anecdótico, por extremo y por real, es el siguiente extraído de una entrevista [2] a Noel Franus, fundador de Carbon IQ:

“Un ejemplo muy caro: hace un año Apple rediseñó su sitio. Era un diseño sexy y llamativo que te invitaba a comprar. Pero no había forma de hacerlo, porque no existía el botón Compra en la pantalla. Lo solucionaron. Lo divertido fue que para realizar la Web contrataron a una de las mejores compañías del mundo de diseño Web. Pagaron millones de dólares. Pero algo tan sencillo como la ausencia de un botón puede hacerte perder muchos millones.”

Por cosas como la anterior es muy importante tener presente en el diseño de una interfaz a quién va dirigido y los requisitos mínimos que debe cumplir.

2.2 Requisitos y medidas de usabilidad

Los requisitos de usabilidad son múltiples pero todos centrados en su objetivo principal, que es hacer que el usuario perciba la interfaz centrada en sus necesidades y que le permitan resolver sus objetivos de manera eficaz y eficiente.

Para determinar este nivel de usabilidad se suelen utilizar medidas como las siguientes, extraídas de [3]:

· El tiempo que necesitan los usuarios para aprender a realizar sus tareas

· La velocidad para realizar las tareas

· La cantidad de errores que se cometen en la realización de las tareas

· La retención del modo de operación con el paso del tiempo

· Y principalmente, debido a que la usabilidad persigue la satisfacción del usuario, será la satisfacción subjetiva que éste perciba la principal medida de usabilidad del sistema

Cualquier diseñador de interfaces debe tener presente que el objetivo es conseguir un compromiso entre todas estas medidas y que no siempre se pueden conseguir de manera conjunta pues dependen en gran medida de la dificultad intrínseca de la tarea y del perfil del usuario que la lleva a cabo.

2.3 Usabilidad universal

La Web, por su carácter global, debe dar respuesta a una gran variedad y diversidad cultural, social, cognitiva, psicológica y en general de capacidades humanas que son todo un reto para el diseño de su interfaz y que hay que tener en cuenta si se quiere tener un mínimo de aceptación y uso por parte de un público cada vez más concienciado y exigente.

Algunas de las diversidades a tener en cuenta son:

· Las capacidades cognitivas y perceptivas referentes a la memoria a corto y largo plazo, la comprensión del lenguaje, la capacidad de aprendizaje y asimilación de conceptos, la resolución de problemas, etcétera

· Las referentes a la personalidad, dónde personas extrovertidas frente a introvertidas, sensoriales frente a intuitivas, perceptivas y sentimentales frente a juiciosas y racionales, adoptarán posturas diferentes ante una misma interfaz, lo que puede generar aprecio o rechazo frente a la misma

· Las culturales, tanto desde el punto de vista étnico y/o lingüístico, como de nivel cultural dentro de un mismo grupo, lo que afectará en la interpretación de formatos, medidas, títulos sociales, signos de puntuación, protocolos y formalidades, entre otros

· Las discapacidades, que serán vistas en el apartado de accesibilidad y que son una particularidad especial a tratar dentro de la usabilidad.

· Las referentes a la edad, personas mayores y niños, los colectivos discriminados y un largo etcétera de diversidades que en gran medida están contempladas también en temas de accesibilidad

· Tecnológica, como conexión a Internet, tamaños de pantalla, requisitos de memoria y proceso, etcétera

Es interesante nombrar al Center of Universal Design [4], resumido en [5], que trabaja en las líneas de definición de estándares de diseño y construcción universales.

2.4 Principios de diseño de interfaces

Existen multitud de autores [6][7][8] y organizaciones [9] que proponen principios generales de diseño. Una agrupación y resumen bastante interesante es el propuesto por [3] en sus “ocho reglas de oro del diseño de interfaces”, y resumido en [10]:

· Consistencia: En situaciones parecidas deberían exigirse secuencias de acciones parecidas

· Usabilidad universal: Se debería reconocer la diversidad de usuarios y permitir la transformación del contenido para adaptarse a estos, por ejemplo, por diferencias principiante-experto, rangos de edad, discapacidades, diversidad tecnológica

· Realimentación informativa: Cada acción del usuario debe tener una realimentación del sistema, proporcional en la medida de la importancia de las primeras, por ejemplo, acciones comunes deberían realimentar de manera que no entorpezca el trabajo del usuario pero que el mismo esté seguro de la realización de su acción, y acciones poco comunes deben alertar de la situación y las consecuencias de manera precisa

· Guiar hacia la consecución de la tarea: Las tareas se deben organizar como secuencia de acciones con principio y fin, y la interfaz debe guiar, mediante diálogos y mensajes de realimentación, desde el principio al final de la tarea

· Prevención de errores: Evitar en lo posible que el usuario pueda cometer errores, por ejemplo, restringiendo los tipos y tamaños de entrada, o deshabilitando elementos no adecuados para el estado de tarea actual, y permitiendo la recuperación a partir de errores que el sistema debería ser capaz de detectar

· Deshacer acciones: Las acciones realizadas por el usuario deberían poder deshacerse sin demasiada complejidad, de manera que se estimule la exploración de nuevas funcionalidades sin ansiedad o miedo, apoyado en la seguridad de poder deshacer cualquier acción

· Dar soporte al locus de control interno: El usuario debe tener la sensación de mandar sobre la interfaz y no al revés, para lo que la interfaz debe responder de manera determinista a las acciones de este

· Reducción de la carga de memoria a corto plazo: Según la “regla siete más/menos dos” el ser humano tiene una memoria a corto plazo muy limitada y esto se debe tener en cuenta en el diseño de interfaces de manera que el usuario sepa en todo momento dónde está, cómo ha llegado y hacia dónde va, sin necesidad de tener que recordarlo, así mismo como se debe proporcionar ayuda en línea y ayuda contextual para que no tenga que recordar el modo de realización de acciones complejas que no estén claras de manera visual

Es interesante nombrar “Las diez plagas de la era de la información” según Shneiderman [3] y que se resumen en [11], pues muestran un resumen claro y conciso de los riesgos que provoca el uso de las TIC, especialmente cuando su diseño no se centra en el usuario.

1 3. Accesibilidad en la Web

3.1 Introducción

Según el [12] “algo es accesible cuando puede ser obtenido fácilmente”, lo que en la Web se puede traducir a que una determinada información es accesible cuando todo el mundo puede encontrarla y usarla, o de manera más específica, [13] una Web es accesible cuando cualquier persona, independientemente de sus capacidades personales o tecnológicas, puede acceder a ella desde Internet y puede utilizar y comprender todos sus contenidos.

Un mapa conceptual de lo que envuelve a la accesibilidad y la usabilidad, desde el punto de vista conceptual, y de sus normativas y herramientas es el mostrado en la siguiente imagen, extraída de [14]:





La accesibilidad es por tanto un término, a diferencia de la usabilidad que es más general, restringido a usuarios que presentan una discapacidad y que ésta reduce su capacidad de acceso a la información.

3.2 Tipos de discapacidades

Según la Clasificación Internacional de Deficiencias, Discapacidades y Minusvalías (CIDDM) se considera discapacidad a toda restricción, deficiencia o ausencia de capacidades para la realización de ciertas tareas en la forma o margen considerado normal (dentro de la norma) para un ser humano.

Algunos tipos de discapacidades son los siguientes:

· Visuales: Personas con problemas graves de visión, como visión parcial, visión cromática parcial ó ceguera total.

· Auditivas: Personas con problemas graves de audición, como discapacidad leve auditiva, sordera total, sordo-ciegas ó sordo-mudas

· Motoras: Personas con problemas motores graves, como problemas de coordinación, movilidad reducida, o problemas de movilidad con extremidades, por ejemplo, y en el caso de la Web, movilidad de los miembros superiores

· Cognitivas: Personas con problemas cognitivos o neurológicos que les generan dificultades de comprensión, incluyendo aquí tanto deficiencias mentales y lesiones neurológicas, como bajos niveles culturales

· De edad avanzada: Personas que debido a su edad han desarrollado deficiencias visuales, auditivas, motoras o cognitivas

Un mapa de distribución de las discapacidades en Europa es el siguiente, extraído de [14]:



Además de las discapacidades que dificultan el acceso a la información existen diversas barreras arquitectónicas o de diseño que pueden dificultar el mismo y que tienen gran relación con las diversidades tecnológicas relacionadas en la sección 2.3

3.3 Diseño Web accesible

El diseño Web accesible se centra en eliminar todas las barreras de diseño que puedan provocar que personas con discapacidad (o restricciones tecnológicas) no puedan acceder, usar y comprender la información contenida en ella.

Las Pautas de Accesibilidad al Contenido en la Web suponen el esfuerzo más importante realizado a nivel internacional para definir un estándar de diseño accesible en la Web.

El grupo de iniciativa de accesibilidad del W3C (WAI) [15] persigue la accesibilidad de la Web a través de 5 áreas de trabajo principales:

· Tecnología

· Directrices

· Herramientas

· Formación y difusión

· Investigación y desarrollo

Así mismo, para comprobar el nivel de accesibilidad que tiene una Web se pueden utilizar diferentes herramientas que permiten validar la adecuación de la Web a los niveles definidos por la WAI (A, AA, y AAA).

La propia Web del W3C aporta gran cantidad de información referente a estas iniciativas.

4. Conclusiones

El presente artículo repasa someramente los conceptos de usabilidad y accesibilidad en la Web, introduciendo al lector en la problemática, los objetivos y los medios para conseguir que la Web sea un lugar de todos y para todos, porque, a falta de detallar las múltiples ventajas que el diseño usable y accesible nos aportan, lo resumimos con una única frase, “TODO EL MUNDO TIENE DERECHO A DISFRUTAR DE LA WEB”, lo que visto desde un punto de vista altruista es un objetivo primordial por el cuál trabajar en pro de la usabilidad y la accesibilidad, y visto desde un punto de vista egoísta, es una necesidad si queremos que nuestro sitio Web pueda llegar a tener éxito en un mundo cada vez más concienciado y exigente con los derechos fundamentales de todo individuo.

Referencia

[1] ISO 9241‐11‐Guidance on usability 1988

[2] Pantaleoni, A. La ausencia de un botón te puede hacer perder muchos millones. Ciberpaís, 1 (18), 8. 2002

[3] Shneiderman, B., Plaisant, C. Diseño de Interfaces de Usuario. Estrategias Para una Inter-acción Persona-Computadora Efectiva. ISBN: 84-205-4803-0

[4] Center of Universal Design

http://www.design.ncsu.edu/cud/index.htm

[5] Rangel, FM., Center of Universal Design Blog Grupo Fivasa, 2008

http://grupofivasa.blogspot.com/2008/12/center-of-universal-design-aspectos.html

[6] Mandel, T. The Elements of User Interface Design. John Wiley & Sons, Inc. Nueva York, 1997

[7] Preece, J. Human Computer Interaction. Addisson Wesley. Nueva York, 1994

[8] Simpson, H. Design of User Friendly Programs for Small Computers. McGraw Hill. Nueva York, 1985

[9] IBM Corporation. IBM User Interface Architecture, 1est. Edition. 2001

[10] Rangel, FM., Diseño de Interfaces. Blog Grupo Fivasa, 2009

http://grupofivasa.blogspot.com/2009/09/diseno-de-interfaces.html

[11] Rangel, FM., Diez Plagas de la Era de la Información. Blog Grupo Fivasa, 2009

http://grupofivasa.blogspot.com/2009/05/diez-plagas-de-la-era-de-la-informacion.html

[12] Picket, J. The American Heritage Dictionary of the English Language. Houghton Mifflin Company. Boston, 2000

http://www.bartleby.com/61

[13] Yonaitis, R. Comprendiendo la Accesibilidad. Una Guía para Lograr la Conformidad en Sitios Web e Intranets. HiSoftware, Concorde. New Hamsphire USA, 2002

http://www.hisoftware.com/uaes/uaccess-es2.htm

[14] Rodrigo, C. Usabilidad y Accesibilidad de los Sitios Web: Diseño y Arquitectura. Depar-tamento de Lenguajes y Sistemas Informáticos. UNED, 2007

[15] W3C (WAI) http://www.w3.org/WAI