Monthly Archives: August 2006

Porque Microsoft no se puede equivocar con IE7

Microsoft esta por lanzar la version 7 de Internet explorer. La ultima vez que hicieron un lanzamiento fue hace 5 a�os, en 2001.

Desde entonces IE nos ha torturado a los programadores m�s de la cuenta (y no soy el �nico que lo piensa). Muchos perdimos la f� en microsoft por este producto tan malo y con una visi�n tan miope.

Pero la luz se hizo. Al menos, eso piensan los que aun guardan un poco de esperanza. Hace poco (y gracias a la creciente presi�n de Firefox) se anunci� que el desarrollo de IE7 reiniciaba. Los que vivimos cargando IE6 a cuestas sabemos de que pie cojea, y se lo hemos hecho saber millones de veces a microsoft.

Es por eso que esta vez, Microsoft no se puede equivocar. Esta vez se le acabaron los pretextos. Me explico.

A parte de que:

Hay una razon m�s, de la que se ha hablado poco, y en la cual ca� en cuenta porque yo tambien soy un desarrollador.

Los desarrolladores de IE esta en el cielo de los proyectos de inform�tica.

El desarrollo de un buen producto, consiste de una serie de pasos comunes a la mayoria de los proyectos. A grosso modo, son estos:

  1. Concepto: Se define la idea
  2. Dise�o: Se establecen puntualmente que va a hacer el producto
  3. Desarrollo: Se desarrolla el producto
  4. Pruebas: Se verifica el producto y en caso de tener errores, se vuelve a los pasos anteriores.

De estos pasos, siempre, en cada proyecto de software, los m�s complicados son los dos primeros. Siempre es dif�cil obtener la idea inicial, conceptualizarla, y mas dif�cil aun SABER EXACTAMENTE LO QUE EL CLIENTE QUIERE.

Es ridiculamente com�n que a mediados de un proyecto al cliente se le ocurra cambiar las bases del proyecto o tenga “ideas” innovadoras para mejorar el producto… lo cual siempre implica p�rdidas de tiempo y dinero para todas las partes.

Ahora, �porque digo que los desarrolladores de IE estan en el cielo?. Porque gracias a una comunidad muy activa los dos primeros pasos ya los tienen completamente hechos!

Microsoft ya sabe exactamente como debe ser el producto y la comunidad (si es que acaso han tenido la delicadeza de escucharnos) le ha dicho como como debe hacerse. Los puntos mas importantes son:

  1. Mayor seguridad, deshacerse del modelo de ActiveX o por lo menos hacerlo mas seguro por default.
  2. Apego a los estandares establecidos. Esto incluye principalmente mejoras a Javascript y una implementacion correcta del CSS.
  3. Otras fallas menores (manejo de transparencia en PNG, mejoras en la UI, etc)

La n�mero 2 es, a mi gusto, la mas importante y la mas solicitada por los desarrolladores. �Porqu�?. Porque en este aspecto Microsoft se ha ido por la libre. Ha hecho lo que ha querido y como lo ha querido a pesar de que existe un comit� denominado World Wide Web Consortium (W3C) que define muy puntualmente como se debe ver la web. Y debido a esta actitud del gigante del software y a numerosos errores cometidos en la implementaci�n, millones de empresas alrededor del mundo han gastado innumerables cantidades de tiempo y dinero en intentar de darle la vuelta a estos errores.

El arreglo, como ya dije, es sencillo. Es como primer y mas importante punto, realizar un navegador que sea eso, un navegador completo. Y para ello basta con seguir al pie de la letra las recomendaciones de la W3C. Asi de sencillo.

Una vez que esto sea realizado, y solo entonces debe procederse a mejorar otras caracter�sticas que sin duda necesitan trabajarse.

La comunidad de internet le ha hecho el trabajo sucio a Microsoft. La mayoria de los programadores del mundo no cuentan con este privilegio. Por eso ya no puede haber excusas ni pretextos. O Microsoft nos hace la vida mas sencilla por su propio bien, o todos sencillamente terminaremos por darles la espalda.

Bug descubierto en Meneame (Y enchilame y clones) aka "Fuera Bombas"

Meneame y sus clones (como enchilame el cual suelo visitar eventualmente y es para usuarios mexicanos) es un sitio de promocion de noticias “democratico”. Las noticias son “promovidas” a la portada si reciben los suficientes votos por parte de los usuarios y descartadas si son votadas negativamente.

Esto deberia ser asi, pero resulta que hay un error en la programacion del cual estoy seguro que los programadores de meneame esten enterados, puesto que parece estar puesto deliberadamente para que funcione asi… O talvez simplemente se les fue y les dio flojera arreglarlo, cosa muy comun en este medio 😛

El error lo encontre uno de esos dias sin mucho que hacer y me puse a revisar el codigo para ver como funcionaba el sitio. Entonces encontre algo que parecia extra�o. Hice una prueba y bam. Funciono.

Explicacion para los mortales

Mediante un sencillo script, es posible realizar “super” votos negativos (yo lo llamo “Fuera bombas”), de manera que a la noticia le sea bajado el karma mas alla de lo comun. Este error es debido a que no se comprueba debidamente el valor de los votos negativos.

Proof of concept

Para probar el error, es necesario una noticia no publicada y estar logueado. Solo un usuario logueado puede introducir votos negativos.

Ya en la pagina de la noticia se escribe esto en la barra de direccion. (corregido, gracias!)

Javascript:linkid = document.forms.thisform.link_id.value; d = document.createElement(‘option’);d.text=’Fuera bombas!!’; d.innerHTML = d.text; d.value=’-10′; document.getElementById(‘problem-‘+linkid).firstChild.appendChild(d);alert(d);

Eso creara un nuevo item en el select de “Problema” llamado “Fuera bombas”.

Ya con esto, solamente se selecciona ese item y la noticia sera votada negativa, con la peculiaridad que ese voto no aparecera en ninguna categoria y el karma de la noticia habr� bajado mas de lo normal.

Como funciona

El proceso es simple. Cuando se vota una noticia en negativo el navegador le envia un numero negativo al servidor dependiendo del tipo de error que se le mande (spam, duplicada, etc). Del lado del servidor se verifica ese valor y lo a�ade al karma. El problema esta en que la validacion no es adecuada. En lugar de verificar por valores especificos (los mismos de cada categoria), simplemente se checa que ese valor sea mayor a -10.

El script lo unico que hace es crear un nuevo elemento con el valor -10 y por lo demas, se usa la infraestructura ya creada por el sistema de votacion.

Como arreglarlo

Como ya dije en el apartado anterior, el arreglo es sencillo. Basta con mejorar la validacion de los votos. Es un arreglo de una linea.

El arreglo debera estar implementado en enchilame en cuanto encuentre al administrador (o me de su password ya le dije xD) y meneame lo debe arreglar en menos tiempo del que yo me tome en escribir el articulo. (demasiado largo, para mi gusto, pero hoy tenia ganas de escribir 🙂 )

Es importante que los clones se actualicen al nuevo codigo lo antes posible, ya que con esta informacion es relativamente facil manipular el karma de las noticias. Hay un par de errores mas en el codigo que los ire sacando poco a poco. Y al igual que este, son menores.

P.D

Seguramente se me preguntara porque no avise primero a los desarrolladores de meneame. Bueno, la respuesta es sencilla. Queria credito por el descubrimiento :P. Ademas no se quien administre alla, por eso solo lo hable con el administrador de enchilame. Asi que como diria nuestro intento de dictador… disculpen las molestias que esto ocasiona.

UPDATE

El codigo anterior tenia comillas dobles en lugar de simples. Era un error. Ya esta corregido

Este post fue escrito con Windows Live Writer (BETA)

Windows Live Writer Beta es una herramientra de escritorio de la familia Live (http://ideas.live.com) que permite manejar el contenido de nuestro blog sin tener que usar los editores que el sistema de blog suele incluir.

Por ahora tiene soporte para las siguientes plataformas:

  1. Windows live Spaces
  2. WordPress (wordpress.com e instalacion personalizada)
  3. Typepad
  4. Blogger
  5. LiveJournal
  6. MovableType
  7. Radio Userland
  8. Community Server
  9. Dasblog
  10. Otros (compatible con MetaWeblog API y MovableType API)

Fue liberado hace unos dias y est� en version beta. Tiene funcionalidades basicas de formato (negrita, cursiva, subrayado, listas, etc), edicion de posts nuevos y existentes, manejo de multiples blogs, previsualizacion de posts.

Todavia tiene algunos errores (por ejemplo hagan una lista numerada de mas de 9 elementos 🙂 ), le falta pulimiento y trabajo (no permite agregar una nueva categoria!), pero parece que va a ser una nueva y buena alternativa a las pocas ya existentes para el manejo de blogs desde el escritorio.