domingo, mayo 04, 2008

Spaghettis con tomate

Hola, hola!

Seguro que habéis leido alguna vez eso de "spaghetti code, but it works!". Es una forma de decir: "lo hice para mi, así que no me pidas que lo haga como tú quieres, si quieres, te lo programas tú, waperas". Esto es algo común en los exploits y en otros programas en los que los usuarios no pueden exigir más.

En mi odisea repasando los ficheros de configuración de todas las herramientas wifi de mi Ubuntu 8.04 me tope con el fichero de configuración Glade del applet del network manager dónde me encontré con el identificador de un cuadro de diálogo como este:

El dialago del driver

Reconozco que me hizo gracia ver esto. Siempre he oido eso de que los didentificadores deben ser autoinformativos, pero en este caso se lo han pasado por el forro. Digamos que esto es un "spaghetti identifier".

Algo similar ha pasado en uno de los paquetes de Debian, en este caso el programador ha aprovechado para dejarle en el código un mensaje a "un amigo".

Sebastian enfadadito

Como se puede ver, en el paquete de quodlibet, el programador ha dejado una ruta a un fichero que dice algo así como "Sebastian Droge, por favor, ahogate en un cubo de pollas". Vamos, ha añadido tomate a su "spaghetti code".

Claro, el amigo Sebastian se ha enfadado, pero... si no te gusta...¡no uses este programa!. Claro, esa no es la solución y en Debian muchos han dicho que no es buen estilo, que Debian no debe permitir esto, etc.. Además, hay voces que han empezado a preguntarse si esto podría terminar en una demanda a Debian y debatir sobre cual es la responsabilidad del código, etc...

Puedes seguir todo el debate en la indidencia abierta sobre este suceso.

En fin, la pena, anecdota a parte, es que en muchos proyectos nos vamos a encontrar "spaghetti code" y esto es malo para depurar y configurar cosas.

Saludos Malignos!

11 comentarios:

Anónimo dijo...

Hola,
What a nicely laid out blog, all the colors seem to be complementary and nice fonts combine to create a great page.

Thank you

Cia

Anónimo dijo...

Bueno.
Ya tenemos espagueti, más tomate. Faltan la carne y la salsa boloñesa. Y ale!: a ver quién se lo come todo!.


:)!!!!

Anónimo dijo...

Tienes suerte, al menos en Linux puedes ver esos sources. Si fuera en tu querido Windows no sabrías siquiera si estás usando alguna aplicación que te está insultando a tí xD

Anónimo dijo...

Es lo que tiene la programación. Te encuentras notas espectaculres. Esto no ocurre con el SW libre sólo. Como dicen @coder me gustaría ver qué ponen los fuentes de Spectra.

Me he encontrado código de otra gente (SW a medida) que he tenido que "retocar" que también tiene sus notitas. Yo a veces lo hago también. Realmente no tiene porque influir en el mantenimiento, porque el mensaje suele ser el mismo que usarías con un lenguaje más elegante. Realmente la nota de las pollas dice: "Sebastián por favor, trata de codificar con un estilo más claro y ordenado y trata de arreglar los bugs. Muchísimas gracias por adelantado" Ves, sólo cambia el lenguaje :)

ptarra dijo...

Chema,

Eso no es spaghetti code, por lo menos según la definición de la wikipedia.

De hecho ese identificador es bastante.... significativo. Al final se trata de poner nombres que ayuden mnemotécnicamente a recordar de qué se trata y midiéndolo por ese parámetro, el nombre está bastante bien puesto en mi opinión.

Respecto a los comentarios en el código, o hace falta que bucees demasiado. El código del kernel es francamente divertido al respecto.

Por cierto. Con eso de usar Ubuntu estás ganando puestos en la "Escala de Calidad Objetiva" diseñada por mí mismo, ya que te pareces más a Donald Knuth, quien recientemente ha dicho en una entrevista que sólo confía sus cosas importantes a Linux (concretamente Ubuntu), pero que prefire usar los Macs para networking...

Un saludo,
Pedro

Chema Alonso dijo...

Hola!

He estado mirando el código del kernel de XP que se publicó y los nombres de las variables son más bien "sosos".

Sin embargo recuerdo en mi época de programador poner variables con nombres como mierda, basura, a, b o c. Sin embargo, no me digáis que no tiene gracia la que se ha montado en Debian, que tiene abierto hasta una incidencia.

Saludos Malignos!

Anónimo dijo...

Sí, tiene toda la gracia, ! y aún esas cosas pasan también en Microsoft!... pero como ya sabes, al ser de código cerrado, aquí sólo se insultan a sus usuarios y clientes. ¿No?. Maligno, tío. te estás pasando con insultarme, hombre, que comes de gente como yo, en fin, respeto y paz, hermano.
¿No?. ¿Que me equivoco?. Aichs!. Ya he vuelto a leer post que me dejan las neuronas como si vivieran en la Montaña Rusa del Parque de Atracciones. En fin...

Yo leí en una web un texto fuera de lugar en la programación que decía "Dios mío ayúdame" o "Dios dame fuerzas". Pero olvidé enseguida el contexto del añadido a las líneas de programación al considerar que era una anécdota.
Esto del Debian es una anécdota, pero que muuuuuuuuuuuuuy "sustanciosa". Gracias a Schlomo, Yaveh te guarde por reportar el bug. Saludos.

Jandro dijo...

Antes despotricabas contra linux, pero y lo bien que te lo estas pasando ahora????

Anónimo dijo...

Adhiero con pedro en lo que respecta a la definición de Spaghetti code. Yo personalmente prefiero la lasagna, pero bueno, es cuestión de gustos.

También concuerdo con coder y el anónimo siguiente respecto de que en el código cerrado no podemos disfrutar de esos comentarios.

Bah, salvo algunos que se escapan, como en la biblioteca fxst30.dll de Windows XP y 2003 (curioso identificador, no?).

Anónimo dijo...

buenas, me estoy sumando también a utilzar ubuntu y mi experiencia tampoco es de la más grata por ahora.

1ro, en la notebook tuve que cambiar los parametros de inicio para que bootee. porque de una se tildaba . actpi y todo eso por el manejo de energia
(claro, que si no tenia otra PC con internet para buscar los comandos no la prendia ni en pedo
2do no existen drivers para mi wireless, es verdad que esto es "culpa" de la empresa del wireless pero vamos... ¿para que quiero un linux en mi laptop SIN internet?

por otro lado, estoy escribiendo esto desde un ubuntu recien instalado en mi pc. la experioencia por ahora es distinta, se instalo de una, me detecto el wireless tambien rapidisimo y todo bien. pero ... ME ANDA INCREIBLEMENTE LENTO INTERNET, se que esto es configuracion.... pero ..... todo es esfuerzo.

un abrazo

Anónimo dijo...

Q importa!! sino te gusta cambialo, es open source .

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares