Cubika cubika cubika

Hoy fui a la convencion de Java, y al igual que el año pasado, estuvieron los vendedores de Cubika gritando a los cuatro vientos que saben usar Flex… bravo chicos, los felicito.

Ahora, una cosa es vender su productito, y otra muy distinta es defenestrar a la tecnologia que pretenden reemplazar con esa porqueria de Flex.

Decir que para hacer uso de Ajax, drag&drop de bloques de codigo y todas las mentiras que tienen en su definicion de RIA, hay que ser un gurú del HTML, CSS y Javascript esta lejos, muy lejos de la verdad. Con el agravante de que lo dijeron en una convención de Java, donde la mayoria de los tipos no tienen NPI de lo que es HTML. Lo unico que provoca esto es darles mas incertidumbre.

En el evento, ellos crearon una aplicacion muy sencilla, de la cual mas adelante yo voy a crear mi propia version, asi puedo ver y comparar ambas. Ellos usaron:

Sofware

Servidor Flex
Esto es de pago y es un servidor pesadisimo, mucho mas que un Tomcat.
Flex Builder
Un pedazo de IDE que es un plugin de Eclipse, pesadisimo.
Flash
No lo usaron en la demostracion, pero si uno quiere personalizar minimamente la aplicacion, necesita FLash.

Conocimientos

Si para hacerlo en HTML hay que ser un gurú, para hacerlo en flex hay que ser un manosanta, ya que ni siquiera hay libros que expliquen como funciona.

Ni hablar de comunidades, porque Flex es un producto desarrollado por Macromedia, por lo tanto los desarrolladores, son empleados nomás y no hay soporte comunitario.

MXML
Es como si fuese xHTML, pero con tags totalmente distintos, osea, en lugar de aprender HTML que es lo que usa cualquier user agent, no, aprendamos otra serie de tags totalmente distintos, que ganas de joder…
ActionScript 3.0
Cómo? No sabes Actionscript? No servis, como vas a hacer web y no saber esto!
CSS y Javascript
Pero cómo? No es que usabamos Flex para evitar usar estas tecnologias que solo las conocen los gurues? Si bueno, pero los estilos en flex se declaran como en CSS.. y de Javascript algo hay que saber viste…
Java
Si, todo lo que es el server side de Flex esta basado en Tomcat, asi que acostumbrate a las excepciones y mañas feas que tiene Java, pero la parte buena es que si sabes Java, le podes pasar el objeto a Flex, ahorrandote el XML intermedio, GUAU! …

El resultado de su ejemplo fue el siguiente, tenian un XML armado, con un listado de productos, este XML era parseado por el servidor Flex y lo presentaba en un contenedor, de la cual uno podia hacer drag&drop a otro contenedor que habia en la derecha y si clickeaba podia ver la descripcion del item en un tercer contenedor.

Mi versión

Yo no soy ningun gurú ni nada por el estilo, y sin embargo logré hacer exactamente lo mismo que esta gente, pero usando NotePad++, xHTML, CSS y script.aculo.us. Todas herramientas open source y lenguajes estandares y en menos de 15 minutos.

Mejor dicho, no hice exactamente lo mismo, hice algo mejor, porque mi version es accesible desde muchisimos mas clientes que su aplicación. No necesita de Flash player 9 (que no es la version de flash que tiene todo el mundo… y en Linux muchisimo menos).

Despues para estar en igualdad de condiciones, cree el parser del archivo XML, lo cual me llevo unos 20 minutos mas (esto ellos ya lo tenian hecho en Flex). Use PHP, cURL y una funcion que encontre buscando en Google.

Pueden ver mi script funcionando aca, si ven el código fuente van a ver las técnicas de gurú que use para poder lograrlo, son tan complejas que la mayoria se va a quedar atónito…

El que quiere descargarlo, es totalmente libre de hacerlo.

Que algo quede bien claro, no estoy en contra del uso de Flex, de hecho, lo uso en algunos proyectos y para hacer graficas creo que es de lo mejor y mas flexible que hay hoy en dia. Pero para hacer sitios o aplicaciones web, NO, no esta bien usar Flex, no esta bien usar algo que no es accesible desde cualquier dispositivo y nunca jamás esto va a poder reemplazar al HTML.

Asi que querés ser un granjero

Este artículo es una traducción del creado por Eric Meyer y publicado en Vitamin.

– Asi que querés ser un granjero, eh? Ser un granjero no es fácil, pero es un trabajo honesto que al final del día, pone la comida sobre la mesa. Qué tanto sabes de esto?
– No mucho, pero me gustaría empezar de todas formas.
– Me gusta tu actitud! Tuviste un jardín alguna vez?
– No, nunca quise uno tampoco.
– Mmm. Bueno talvez podamos empezar plantando un poco de maiz. Eso no es muy dificil y es bueno para aprender como poner bien las semillas, ademas puede llevar algun tiempo el aprender las bases de las señales metereologicas.
– De qué estas hablando? Yo no quiero plantar semillas ni escuchar hablar de metereología. Yo quiero ser un granjero.
– Me estas cargando? Como pretendes crear comida si no sabes como plantar semillas y mantener los campos regados y fertilizados? Como esperas tener tus vegetales maduros sin saber nada sobre el estado del tiempo?
– Por qué querría yo investigar o siquiera escuchar lecturas aburridas sobre meteorología, cuando lo que yo quiero es ser un granjero?

Continue reading

El open source no es negocio

Mas alla del título apocalíptico, y de la polémica que pueda generar, me estoy convenciendo de que el Open Source como plataforma de servicios masivos, no es negocio en la comunidad hispana de Internet.

Poniendo como ejemplo a dos servicios conocidos por todos, Meneame y Fresqui.

Mientras que en la esquina del software libre está el Proyecto en español mas exitoso de Internet. A este los ingresos no le alcanzan ni para pagar los gastos del servidor donde se encuentra.

En la otra esquina, un proyecto que es su competencia directa, pero auspiciado por una empresa y de código cerrado se va a dar el lujo de pagarle a sus usuarios por generar contenido.

La clave esta en que ambos servicios no son nada sin la comunidad de usuarios, que es donde hacen la mayor diferencia. Esto para Meneame es un arma de doble filo, ya que tiene la mayor cantidad de usuarios, pero su comunidad es muy exigente (por llamarla de alguna manera…), por lo que los administradores no pueden tomar la opción que se les cante para generar ingresos.

Si a la comunidad no le satisface lo que deciden los administradores, seguramente migren a otro servicio que prometa respetar sus ideales.

Ahi es donde creo que hay que establecer un límite. Hasta donde llega el software libre? Se limita solo al código fuente, o el servicio tambien es de la comunidad?

Estoy pensando paralelísmos de otros servicios que esten basados sobre plataformas open source, porque seguro hay algun antecedente, pero mas que algun foro de mala muerte, no se me ocurre. Yo, nunca vi el caso de un servicio masivo montado sobre una plataforma de código libre.

En fin, si yo hoy tuviese que apostar por alguno a largo plazo, pondría mi plata en el servicio que se sabe, se comprende y se acepta desde un principio que es un negocio.

A menos que en Meneame surja una forma revolucionaria de generar mas ingresos (y que esta sea aceptada por su comunidad, claro), solo le veo chances de perder.

Pero bueno, yo tampoco soy un experto en negocios y bien puedo equivocarme.

Nike 10k

Esta decidido, voy a correr trotar caminar el nike 10k. Digo esto mientras estoy tomando mate y comiendo bizcochos con grasa, por lo que no creo que llegue ni remotamente cerca de la meta! Pero considerando la proyección que hago de mi panza, si no lo hago este año no lo voy a hacer jamas.

De última por 40 pesos me quedo con una remera Dry Fit para jugar a la pelota :-P.

Si alguien va, que avise en los comentarios.

Día de la Usabilidad

El 14 de Noviembre va a pasar algo sumamente vertiginoso y exitante, no veo la hora de que llegue el día de la usabilidad!!

OK ok, no es para tanto, pero si es importante.

En la Universidad de Belgrano (Buenos Aires) se va a dictar un seminario gratuito de usabilidad que consiste en varias charlas, desde las 10 hasta las 15 (espero que la comida este incluida!).

Como no podria ser de otra forma, algunas de las charlas van a tocar temas de accesibilidad y seguridad (aunque esto de seguridad no veo bien donde encaja…).

Esta bueno que son charlas cortas, la ultima vez que fui a un evento de estos, era una unica charla que duraba como 4 horas. En el break, la mitad nos fuimos a rieso de quedarnos dormidos. El tema no da para hacerlo tan largo.

A los disertantes no los conozco, vi sus sitios y no me parecieron un altar a la usabilidad (tampoco a la accesibilidad), pero despues de esto, tampoco me sorprende.

En fin, feliz dia de la usabilidad para todos, y nos vemos alla.

Update: Uno de los disertantes va a ser Lautaro Mazzitelli, ojo al piojo!

Hay que pagarle a los programadores

El domingo a la madrugada una tipa apuesta 5 centavos en un tragamonedas y esta devolvio que ganó 35 millones de pesos (11,5 millones de dolares).

(…) la máquina acababa de marcar que Verónica había ganado 35.663.093,02 pesos. La desconfianza hizo que ambos llamaran de urgencia a un abogado, sacaran fotos de la pantalla y se aferraran durante ocho horas al artefacto para evitar que nadie cambiara semejante cifra.

Motivos tenían: el bingo se niega a pagar ese monto aduciendo un error de la máquina.

Según los dueños del casino…

Se trató de un error, una alteración en el programa. El máximo a ganar en esa máquina, que figura incluso en el display, es de 35.000 pesos.

Eso pasa por regatear con los programadores!

Artículo completo en Página 12.

Tied Magenta

ipod_drm.png

El DRM es algo que no te molesta para nada hasta que no lo sufris, no hay nada mas feo que llegar a la oficina con el ultimo disco que metiste en el ipod, y acordarte que no lo podes bajar a otra maquina :S.

DefectiveByDesign es una campaña dirigida a los medios, fabricantes y distribuidores de productos con DRM para que eliminen estos defecto desde el diseño en los productos que limitan la libertad de sus usuarios.

Tied Magenta, del grupo DefectiveByDesign, visto en tags services (que nombre raro para un blog!).

Don’t make me think

dont_make_me_think.png

Me prestaron el libro de Steve Krug Don’t make me think, esta bueno, es de esos libros que dice cosas básicas pero importantes. El libro, es un 8 sobre 10, bien maquetado, facil de leer y muy llevadero.

Pero de curioso nomás, recien entro al sitio web del amigo Steve, y no entiendo como puede ser el mismo tipo que escribió este libro. Errores básicos de usabilidad y accesibilidad que en su mismo libro los defenestra!

Todo maquetado con tablas, la barra de navegación principal con imagenes sin el atributo alt, parrafos de texto dentro de imagenes (!!!), nombres de páginas que no corresponden con los enlaces entrantes, ni siquiera buscador (aunque es lo menos grave, despues de todo es un sitio muy chico, o eso parece).

Si bien el mismo lo dice:

Those of you who have been following along at home already know that a wonderful new fully-CSS’d and impeccably-accessible version of my site was supposed to launch about the same time that the second edition shipped in August.

Those of you who know me personally also know that I’m inherently slow-moving.

Ese Agosto del que habla fue el del 2005, ya pasó mas de un año. Por mas lento que seas son 5 páginas macho, media pila! Cualquier persona que vea ese sitio antes de empezar a leer el libro lo tira por la ventana.

Sun TechDays 2006

logo_java.png

Al igual que el año pasado, se viene el evento de Java patrocinado por Sun, aunque no se porque le cambiaron el nombre.

Esta edición se va a hacer en el hotel Hilton (buena onda, lindo lugar) del 23 al 25 de octubre y de las cosas que vi, las charlas que mas me interesan son:

Día 24/10
  • Sun Portal Server for Web 2.0: AJAX, Performance and related topics (12:00)
  • JAX-WS and Java Web Services APIs (2:00)
  • Technologies and Tools for Web 2.0: JSF and Creator (3:00)
Día 25/10
  • In-depth Session: Developing Web 2.0 Application Using AJAX and Related Frameworks (4:20)

No se porque sera, pero los temas que mas me interesan son justo los que estan entre los breaks y lunchs, jajaja.

Quiero ver que es lo que la gente de Java dice que es web 2.0, la mayoria de los programadores Java que conozco no saben ni como codear HTML, asi que esto va a estar interesante.

Se busca desarrollador flash

Estoy por empezar un nuevo proyecto corto, bastante corto, pero me voy a meter en cosas que no son de mi dominio, y para hacerlas es necesario saber bastante Flash.

El proyecto en sí, es para experimentar con un único elemento en particular de la usabilidad de un sitio web y la forma de acceder y organizar el contenido, es decir, no es hacer una animación y ya, sino que la cosa va a tener bastante interacción con el usuario.

En concreto, busco un desarrollador Flash avanzado para divagar un rato conmigo. Respecto a la remuneración, como dije antes, esto es para experimentar asi que si el desarrollador quiere y puede hacerlo por hobby genial. Si no es asi, veremos hasta donde me da el bolsillo.

Interesados, envienme un email a dfgonzalez@gmail.com y hablamos.

Matchpoint de Woody Allen

matchpoint.jpg

El otro dia vi esta película de Woody Allen, sin saber que era de el, de otra manera muy probablemente no la hubiese mirado!

A esta altura ya la debe haber visto todo el mundo, si no la viste, recomendadisima.

Me sorprendio lo incomoda que se vuelve esta pelicula, si bien la primer hora es muy aburrida, el final es insostenible, el protagonista no para de mandarse cagada tras cagada y te mantiene atrapado hasta el final.

Esta muy bien lograda la empatibilidad (palabra recien inventada) con el protagonista, te pones en us lugar por completo y sufris todo lo que le pasa.

Y respecto al final… esta perfecto, si terminaba de cualquier otra manera, no me hubiese gustado.

Me compré un CD!

the_white_stripes_get_behind_me_satan.jpg

Hacía cerca de 6 años que no compraba un CD (ni se les ocurra preguntar que fue lo que compré aquella vez).

En fin, todo para decir que finalmente soy el tipo de persona que tiene banda favorita! Es muy frustrante que te pregunten:

– Qué escuchas?
– … De todo un poco…

Gracias a Meg y Jack White, no mas señores! Les recomiendo mucho cualquiera de sus discos (no les pido que los compren, pero si que sepan que The White Stripes no muere en Seven Nation Army).

El disco que compré, se llama Get behind me satan y entre los temas mas grosos estan:

Para aquellos que no tienen idea de quienes son estas gentes, son una pareja (sisi, casados y toda la cosa) que se ocupan de todo, Meg en la bateria y percusiones y Jack en guitarra, piano y cada tanto marimba.

Aca en Argentina la rompieron hace 3 años con Seven Nation Army, pero fue hasta este mes que descubri lo mejor de ellos, y fue un camino de ida :-).

Sí, este post también es una excusa

Para ver como queda este diseño que encontré misteriosamente en Mis Documentos a medio terminar (todavia estoy esperando el plugin de Marcos para usar la búsqueda de Yahoo! Dale loco, media pila!).

Parámetros contextuales, haciendo amable a una API

Esto fue idea de Armando, pero ayudé a implementarlo asi que me siento un poco padre de la criatura, y ademas, es una excelente idea como para que muera en nuestra aplicación y no vea la luz.

No se si alguna vez ustedes intentaron acceder a una API, o si alguna vez crearon una. En el fondo la idea es tener una interface para comunicar distintos sistemas. Cuanto mas simple sea esta interface, mas facil va a ser la comunicacion, ergo mas gente la va a poder usar.

Get Real, nadie lee la documentación

Como toda API, la de Cajabox está siendo documentada (ya tiene nombre y todo, y ojo que el nombre es una pista importante), pero cuanto menos cosas haya que aclarar porque estas son obvias, mejor será, y es por eso que nos tomamos el trabajo de crear este feature o detalle que me gustaria ver en mas lugares.

Cómo trabaja una API

Dije que una API era una comunicacion, por lo tanto lo minimo que vamos a tener es un pedido y una respuesta.

El pedido puede hacerse de muchisimas maneras, a mi la que mas me agrada y mas usable me parece, es hacerlo a travez de la URL, por ejemplo:

http://cajabox.com/api/accion/grande/provolone/false

Lo cual devolvera una respuesta, puede ser desde true o false o algo mas complejo como en el caso de flickr que envia una imagen o set de imagenes.

Incluso en la manera de devolver la respuesta hay muchas variantes, desde CSV, XML o el chico nuevo del barrio, Json (el cual todavia no me acaba de simpatizar).

Pero es en el pedido donde quiero enfocarme, a simple vista no parece dificil. De hecho, es la manera mas simple de todas, llamo a una URL y esta da una respuesta, tal como hacemos todo el tiempo con el navegador.

Pero hay un truco, el orden de los parámetros debe ser siempre ese, sino, puede pasar… lo inesperado. Y sinceramente no me parece muy usable una URL llena de parámetros que, fuera de contexto no tienen sentido.

Cómo hacer para que esto se vuelva mas usable?

Si fuera de contexto no tienen sentido, la respuesta obvia es: darles contexto.

Si se define un nombre para cada parámetro, ganamos dos cosas:

  1. Mas usabilidad porque la URL quedaria llena de parametros definidos.
  2. Mas flexibilidad porque al tener el nombre del parametro, ya no es indispensable el orden.

La URL quedaria entonces asi:

http://cajabox.com/api/accion/tamanio:grande/sabor:provolone/con_aceitunas:false

Como saben, Cajabox esta construido sobre la base del imponderable CakePHP, asi que este snippet seguramente sea liberado en forma de componente para vuestro disfrute.

Y no, Cajabox no es una aplicacion para pizzerias!