Archive for February, 2008

Lección de imagen

Wednesday, February 27th, 2008

¡La que me han dado!

Comentaba el Tendero hace poco sobre la importancia de la imagen:

El otro día, un cliente me enseñó un presupuesto de una reforma de sus Oficinas (bastante grandes) y cada zona de la Oficina tenía un nombre más ridículo, que tenía que ver con el nombre de la empresa. Y cada mueble de la Oficina, tenía sabor, olor, color… relacionado con la empresa que pedía el presupuesto. Y para rematar habían hecho una maqueta con papel de periódico y pintada con acuarelas… Así imagino que si el preupuesto valía X, pues ahora vale X+chorradas varias de presupuestos. Pero parece que a los jefes de este cliente, les ponen mucho esas chorradas.

Y yo le comentaba en su blog:

estamos entrando en un tiempo en que hacer las cosas bien no va a ser suficiente. La gente empieza a querer/necesitar diseño y usabilidad en todo lo que ve/toca/usa etc.

Y no sabía lo pronto que iba a experimentarlo yo en mis cannes. La historia es que en mi curro actual hacemos aplicaciones Flash que no lo parecen. La verdad es que no tenemos un equipo de diseño demasiado potente y yo soy un pobre picador. Pero en mi afán de aportar un poco al lado emocional de mis aplicacioncillas, me importé las Tween y le di un poco de easeOutElastic a unas transiciones. Compilo, lo subo a la página de ejemplo y mando un mail a los interesados: “Nueva versión aquí, bla, bla.”

- A los 2 minutos: Uno de software: “Eh tío, cómo mola el rebotito ese que has puesto, se sale. Le he dado 10 veces. Genial”.

- A los 5 minutos: Diseñador: “Eh, gracias por la actualización. Por cierto, se sale el efectillo ese, les va a encantar.”

- A los 10 minutos *Jefa de proyecto* que se levanta de su mesa, viene a la habitación de software: “Juan, me encanta el efecto que has puesto! Muchas gracias, queda genial y les va a flipar. Gracias, gracias.”.

O_ó

Resulta que del testing con Mark nos sacamos la idea de las instrucciones específicas para lectores de pantalla ¿no? Bueno, eso fué el viernes. El lunes a medio día estaba implementado en TODAS nuestras aplicaciones. ¿Cómo? Fácil si tienes montado un framework con unas clases de las que extienden todas tus aplicaciones, lo cual asegura que todas heredan el mismo código de una forma consistente, no tienes que andar copiando y pegando, bla, bla, bla… Vamos, que yo el lunes estaba contentito de comprobar que las chapas que doy son realmente útiles en la práctica. Eso sí, ni el tato vino a darme una palmadita (aunque tampoco hacía falta, es mi trabajo).

Ahora, montar el efectillo (ya ves tú, un mísero rebote con las tweener) me ha costado 5 minutos y lo hace cualquier monkey. Y casi me ponen rojo a felicitaciones….

No sé, me da la sensación de que igual no invierto mi tiempo y esfuerzo en la dirección correcta. O puede que sí, no sé. Quicir, que el hecho de que todo funcione como toca empieza a dejarme tiempo para hacer cosas un poco más molonas.

Qué mundo este!

Testing with Mark

Monday, February 25th, 2008

Pues como comentaba hace poco, el viernes pasado tuvimos un día de testing con Mark, un chico ciego que además de ciego es biólogo con un master pero que no encuentra trabajo de lo suyo ¿Imaginas por qué? Efectivamente, porque es ciego. Pero dejemos eso para otro post.

El caso. Para empezar es increíble ver cómo una persona ciega utiliza JAWS. La velocidad a la que lo tienen configurado parece una broma. Muchas veces le tenía que preguntar “¿Ha dicho esto?” y el se escojonaba “Claro, ¿no lo has oido?”.

Trato de resumir cosas que me sorprendieron y llamaron la atención, aunque algunas pueden parecer obvias. NOTA IMPORTANTE: En ningún caso quiero decir que la realidad de *todos* los ciegos sea lo que cuento, estas observaciones vienen de un solo día de testing con una sola persona. El equipo era WinXP SP2, JAWS 9, Flash 9.0.115 (importante el 115 ya esta versión trae importantes mejoras con respecto a lectores de pantalla). Dicho queda.

- Para un ciego las webs o aplicaciones no tienen izquierda y derecha, son “verticales”. Es decir, para ellos lo importante es el orden en que los enlaces son leídos. Los primeros estan “arriba”, los últimos “abajo”.

- Hacen una pasada general por todos los enlaces y luego se van a lo que le interesa. Tiene todo el sentido del mundo, lo mismo que nosotros de un vistazo escaneamos una página y luego vamos al enlace o texto que nos interesa, ellos de un “oidazo” escanean la página y luego saltan donde les interesa.

- Por lo menos Mark no utiliza mucho atajos de teclado especiales, utiliza más la “fuerza bruta”. Quicir, va haciendo click en “siguiente enlace” a todo lo que da de velocidad y consigue levantarte dolor de cabeza casi instantáneamente.

- Parece útil que las aplicaciones tengan instrucciones específicas para lectores de pantalla. Esto lo haremos poniendo en pantalla un objeto con el primer tabIndex y añadiéndole las instrucciones a través de _accProps. Interesante el trabajo de optimización que hace JAWS, similar a lo que hacen los navegadores cuando hay wmode. JAWS sólo lee un objeto si es visible en la pantalla. Es decir, si le pones _alpha=0, lo sacas de la pantalla con _x=-1000 o simplemente está tapado con otro objeto, JAWS NO lo lee. Nosotros sólo lo mostraremos si un lector de pantalla está presente (cosa que se comprueba con Accessibility.isActive());

- Como ya vi en mis pruebas iniciales JAWS “lía” los tabIndexes de Flash. No pasa mucho, pero de vez en cuando le da por empezar por ejemplo por el tabIndex 3 en lugar de por el primero.

- Mark utiliza GMail sin ningún problema. El cabroncete dice que si no quiere oir la publicidad entra con JAWS 7 lo que fuerza la versión “basic HTML” de GMail. Dejo para otro post comentar la pasta que están perdiendo los anunciantes por no hacer publicidad accesible.

Seguro que me dejo millones de cosas de las que me acordaré cuando editemos los vídeos. Tenemos casi todo grabado, incluida una mini-mesa redonda de charleta con él, pero no puedo asegurar que se vaya a publicar. Yo voy a tratar de que me den tiempo para escribir algo y editar los vídeos, pero como siempre vamos jodidos de tiempo. Ya os diré algo si eso.

Ea!

MTASC duplicate main entry point

Thursday, February 21st, 2008

De lo que se entera uno. Resulta que la opción -main de MTASC NO acepta parámetros. Es decir, esto:

mtasc -main Wadus.as

es lo mismo que esto:

mtasc Wadus.as -main

Porque -main no acepta parámetros. Esto puede parecer nimio, pero genera un problemita y es que en todo tu código, sólo puede haber un método público estático “main”. Posibilidades de que esto te pase? Ayer mismo a mi.

Si a alguien le consuela, que no creo, el compilador de haXe sí que admite como parámetro la clase que funciona de “lanzadera” con su método “main”.

Ea, dicho queda.

Los ricos

Monday, February 18th, 2008

Me han hecho sonreir (por ilusas) estas declaraciones:

…me deja boquiabierto. Gente que gana millones y no tienen suficiente. Es un caso escandaloso de avaricia

A cuento del jaleo que se ha montado en Alemania por el fraude fiscal de los ricos.

A mi lo que me deja boquiabierto es que el presidente del SPD sea o tan iluso o tan gilipollas. Porque ¿para qué coño se piensa este hombre que están los paraisos fiscales? Pues para que la gente con mucha pasta se ahorre otro motón.

Es decir, a la gente que tiene mucho dinero se le permiten ciertas “ligerezas” contables. Y si no ¿por qué se permiten los paraisos fiscales de Andorra, Suiza, Las Caimán, Gibraltar, etc.? Lo que pasa es que de vez en cuando, hay que dar buena imagen y empapelan a alguno. Sale un poco en las noticias, tendrá un juicio más o menos, unos meses de cárcel, y luego a la calle y a colocarse como “asesor” de cualquier empresa necesitada de la “experiencia” del capullo de turno. “Experiencia” por supuesto es una bonita manera de decir “necesitamos los enchufes que nos pueda conseguir con sus contactos”.

Siguiendo con el tema de la avaricia de los ricos, echadle un ojo a Alarma en la City por el impuesto a los ricos

La City de Londres se ha alzado en armas contra el plan del Gobierno laborista de fijar un impuesto lineal de 30.000 libras anuales (unos 40.000 euros) a los ciudadanos que no tienen residencia fiscal en Reino Unido y disponen de suficientes recursos como para disfrutar de una segunda vivienda - además de sus cuentas bancarias- en algún paraíso fiscal como el Principado de Mónaco, Liechtenstein o Islas Caimán.

La City tiene miedo al precedente que significa empezar a inventar nuevos impuestos, que en vez de ir dirigidos como es habitual a las clases medias que no tienen forma de evadirlos, tienen esta vez como objetivo los millonarios.

¡Pero OJO! ¿Qué pasa si los ricos se enfadan y se van a otra parte donde los traten mejor? Se supone que tener a esa gente en tu ciudad la enriquece de forma indirecta (como generar empleo, atraer inversiones) que compensa la exención de impuestos. O eso dicen.

Es como los deportistas que montan una fundación o apoyan una causa *super* justa pero luego no pagan impuestos en el lugar donde viven. Hace poquito el sr. Valentino Rossi ha cerrado unas rencillas con la hacienda italiana abonando la insignificante cantidad de 35 millones de euros. Pero vamos, es uno más de tantos.

Al próximo que vea en las noticias visitando un hospital, le diría que si quiere contribuir de verdad, que pague sus impuestos. Como hacemos los demás.

Xinf

Friday, February 15th, 2008

A ver si lo explico todo clarito.

Daniel Turing (antes conocido como Daniel Fischer) es el responsable por ejemplo de SWFMill, la herramienta que se utiliza con MTASC para crear Flash de forma libre.

El chaval se ve que va para rey de los frikis porque también es el responsable de Xinf:

Xinf’s goal is to provide a unified, SVG-oriented API that allows you to write graphical applications (and games) in haXe that will run on the three target runtime environments.

Repetimos: Xinf es una API en haXe para crear gráficos que funcionarán en 3 players distintos. ¿Y cuáles son esos players? Flash, cualquier navegador que acepte JavaScript de forma decente y el Xinfinity runtime. ¿Cómo? Eso que oyes. Este friki está también picando un player multi-plataforma basado en OpenGL. Lo que este hombre está haciendo es que tu código haXe lo compiles a 3 plataformas distintas. Una de ellas a su vez es un player libre propio (Xinfinity) multiplataforma.

Y todo esto lo hace porque está haciendo investigación de pantallas multi-touch. Echadle un ojo al sencillo prototipo: Keyboard, SpringGraph, PhotoApp. Luego daos una vuelta por el resto del blog para más demos. Impresionante.

Y claramente no me puedo resistir a decirlo: SOFTWARE LIBRE. Todo el trabajo de este hombre está basado en haXe, SVG, OpenGL…

ROCK ON!

JAWS + Flash = al palo

Tuesday, February 12th, 2008

Ando probando una de las últimas versiones de JAWS (9.0.519) en aplicaciones Flash. Como siempre, buenas y malas noticias.

Las buenas noticias son que utilizando la propiedad _accProps de un MovieClip puedes especificar dinámicamente y por código lo que el lector de pantalla leerá cuando le llegue el foco a ese MovieClip.

[Aquí como siempre Adobe haciendo chapuzas de las suyas. No hay un objeto AccProps, si miras la referencia recomienda crear un objeto anónimo, lo cual apesta porque no tienes validación de tipos. Pero es que _accProps ni siquiera aparece en las propiedades de MovieClip sino como propiedad global, por lo menos para AS2.]

Una vez creado la propiedad _accProps, nos vamos al navegador y comprobamos. En general funciona más o menos de forma esperada tanto en IE como en FF (esto último sólo con la version 9.0.115 del player que es la que añade soporte para MSAA en navegadores alternativos). Es decir, JAWS lee con su metálica voz lo que le dices. ¡Yuju! Hasta aquí las buenas noticias.

Las malas noticias son:

- Bastantes inconsistencias con el orden de tabulación. Es decir, sin JAWS activado la tabulación dentro de Flash funciona como un reloj. Con JAWS activado, algunas veces de forma aleatoria empieza por la que le viene en gana. Tanto IE como FF.

- JAWS interfiere en la captura de ciertas teclas. Una de las aplicaciones captura Key.onKeyDown y si es ENTER ejecuta unas acciones. Sin JAWS perfecto, con JAWS no llega el evento a Flash. Pero es que no sólo pasa con ENTER, pasa con más atajos de teclado de JAWS, por ejemplo “r” (ir a radio buttons) o “a” (ir a “anchors”). Aún no sé cómo voy a maravillearmelas para saltarme esto.

Una cosa que mola es que podemos pasar instrucciones específicas a los usuarios que usan un lector de pantalla añadiendo _accProps a _root. Así en el momento que le llega el foco, lee esas instrucciones específicas que pueden diferir bastante de las instrucciones para una persona con visión. La otra forma de hacerlo sería con un div oculto en HTML, lo cual mola menos.

De todas formas lo mejor con diferencia es que en mi curro han contratado a tiempo parcial a un chico ciego para que nos ayude con temas de accesibilidad. Estoy intentando que venga a la oficina un día para hacer user testing con él. Pero testing en plan:

Prueba esto a ver qué tal. ¿Mal? Espera, que recompilo haciendo esto otro y vuelve a probar.

Tener a un ciego en plantilla es de un valor INCALCULABLE para hacer testing REAL. Una cosa es cómo yo utilizo JAWS (al que odio porque me da dolor de cabeza) y otra muy distinta cómo lo hace un usuario avanzado.

En fin, ya os contaré cómo va la cosa y si tengo tiempo haré un artículo algo más extenso. Si alguien tiene preguntas específicas para Mark (que así se llama), que me mande un mail. Si alguien sabe donde hay información *actual* sobre lectores de pantalla y Flash, que me lo cuente también, por favor.

Una vez que tengamos JAWS controlado, intentaremos pasar la prueba con Windows Eyes.

Salud!

Detalles

Sunday, February 10th, 2008

Si tienes un coche grande y un portátil pequeño, eres un triunfador.
Si tienes un coche pequeño (pero no muy pequeño) y un móvil grande, eres un loser.

Hay más ejemplos:

- Cosas que están bien si son grandes: casa, coche, tele, picha, tetas, cuenta bancaria, vacaciones, oficina…
- Cosas que están bien si son pequeñas: móvil, procesadores, portátil…

Así de dura es la vida, ¡tan cerca pero tan lejos al mismo tiempo!

15.000 euros no son nada

Tuesday, February 5th, 2008

El problema no son las empresas (ni siquiera los departamentos de márketing) el problema es lo que el Estado y los jueces les deja hacer. Vía menéame me entero de que han condenado a Kellogg’s por publicitar los Special K como 0% de grasa cuando no lo son. ¿La multa? 15.000 tristes euros.

Ya me parecía poco el millón y medio de dólares que le clavaron a una empresa porque unas niñas australianas les pillaron publicitando un producto con “más vitamina C que las naranjas” cuando resulta que no tenían, así que el palazo a una multinacional como Kellogg’s me parece poco menos que una broma.

La publicidad engañosa, mentir a millones de personas, modificar unilateralmente las condiciones de los contratos, ofrecer servicios de atención al cliente patéticos… todo esto les sale muy pero que muy barato a las empresas.

Y al hilo un poco del tema de la publi y el post sobre cuánto estamos dispuestos a pagar por las cosas, echadle un ojo a el negocio del engaño:

Ser publicista es dedicarse directamente a tratar de engañar a la gente en la medida de lo posible. Ya saben, la gente de Marketing son esos que se encargan de crear mundos maravillosos repletos de tías buenas y cerveza fría en los que no existen los feos, porque los feos sencillamente merecen morir.

…los usuarios deberíamos de empezar a pensar que si queremos independencia periodística y cierta ética, deberíamos de empezar a asumir que hay que pagar por ella…

¿Y qué pasa cuando se ha acordado una nota [de prensa] o se ha llenado de publicidad (muchas veces está implícito) una página y el redactor de turno le ha cascado un 6? Pues que el PR Manager de turno levanta el teléfono, llama a la página web, se caga en su puta madre y todos los muertos enterrados en el desierto de Las Vegas y por último AMENAZA con retirar la publicidad de la página.

¿Y qué hace la página?

Pues pide disculpas a la agencia de publicidad o Jefazo de la distribuidora y obviamente despide al redactor.

Lo que quiero decir es que en Radio, Tv y prensa escrita, este modelo de negocio les ha funcionado porque practicamente no había “feedback” entre lectores y escritores. Y el feedback que había era filtrado. Pero eso en internet no puede ni va a funcionar porque a la gente no la van a poder seguir metiéndosela doblada mucho tiempo… y la verdad saldrá a la luz antes o después.

Lo sentimos mucho señores del marketing y del engaño, la foto os ha salido borrosa: En vuestro mundo de tías neumáticas en bikini y tíos musculosos con el cerete depilado y torso bronceado, resulta que en un rincón de la imagen hay unos cuantos tíos con barriga y tías con bendita celulitis que se ríen de medio lado, con la típica expresión que se le pone en la cara a uno cuando se sabe conocedor de LA VERDAD.

Lo del “cerete depilado” me ha hecho reir mucho :)

En fin, bendita celulitis.

El jefe de tu jefe…

Sunday, February 3rd, 2008

…es el usuario final, que es el que paga *de verdad*. Así que si tu jefe te quiere colar una cutrada, recuérdale quién es *su* jefe.

¡Ea!