viernes, julio 24, 2009

Cagarse en el chocolate

Serie: Los N Pecados Capitales

Scott McNealy: Zángano Padre de todos los Oompa Loompas de este mundoEn la empresa de Willy Wonka, se fabrica un exquisito chocolate. Al menos, esa es la opinión general. La producción está a cargo de los umpalumpas: una extraña raza de friquis canijos, adictos a la programación en Java, a los que pagan con granos de cacao.
Los umpalumpas tienen la curiosa manía de inventarse canciones sobre la marcha, y luego pretender que se trata de tonadas tradicionales, de las de toda la vida. Por ejemplo, si un niño glotón se cae dentro del río de chocolate, improvisan una canción explicando por qué no se debe uno inclinar demasiado sobre la corriente. Si un proyecto de desarrollo fracasa estrepitosamente, se inventan melodías que hacen referencia a dominios escuálidos, programación ágil e inversión del control. Son pintorescos, estos personajillos.
Pero los umpalumpas tienen también una costumbre muy fea. Alex, un umpalumpa de Pontevedra, revuelve el chocolate fundido cuando siente que algo más se revuelve en su interior:
- Willy… ehm… señor Wonka.
- ¿Sí, Alex?
- Tengo un apretonciño de intestinos…
- Te aguantas. Esta barra de chocolate tenía que estar para ayer.
- ¡Pero es que me lo voy a hacer encima!
- Caga entonces dentro de la tina del chocolate.
- ¡¿Cómo?!
- Joder, Alejandrito, ¿tengo que dibujarte un diagrama de clases?
- Pero, ¿cómo vamos a echar mierda dentro del chocolate?
- A ver, ¿de qué color es el chocolate? Marrón. ¿Y la mierda? Marrón. Un poco de mierda espesa aporta crema al cacao.
- Pero… es que estoy un poco estreñido y estoy cagando boliñas, como las de las cabras…
- Pues mejor aún: chocolate con cacahuetes, y si las bolas son más grandes, con nueces y avellanas.
Por desgracia, la mierda de umpalumpa es sumamente corrosiva. Por su culpa, caen aviones, revientan naves espaciales, fallan sistemas de soporte vital en hospitales y se aplican dosis excesivas de radiación a pacientes de radioterapia. Será mierda, pero hay que tomársela muy en serio.
Hay mil y una maneras de cagarse en el chocolate. Por mencionar unas pocas:
  1. Una aplicación para almacenar expedientes médicos, escrita en dBase, generaba claves primarias mediante el sucio mecanismo de contar los registros en el fichero y aumentar el valor en uno. Mientras el hospital tuvo un único ordenador en admisión, el chocolate sabía a ambrosía. Un día instalaron un segundo ordenador, y en algún momento, se crearon dos registros simultáneamente… con la misma clave primaria. Migrando la aplicación a InterBase, en el 2000, alguien tropezó con la historia clínica de un buen señor que había sufrido la extirpación de sus ovarios.
  2. En la historia anterior, el error no se detectó porque los índices de aquella versión de dBase no permitían la comprobación de unicidad. Pero conozco un par de sistema implementados sobre Oracle en los que los “diseñadores” (es un decir) han evitado el uso de claves primarias concienzudamente.
  3. La mismísima Borland se cagó, en su momento, en el chocolate de la casa. Cuando apareció Delphi 2, se produjo una ola de fallos en aplicaciones de servidor. La causa: en servidores con procesadores Xeon, fallaban determinadas operaciones sobre cadenas de caracteres, porque la implementación del tipo String no era thread-safe.
  4. Todos sabemos, o eso espero, que no debemos acceder a los métodos de un objeto de ventana desde un hilo diferente a aquel en el que fue creada. Sin embargo, este tipo de violación no es verificada en ningún caso por .NET Framework v1.1. Muchas aplicaciones, por lo tanto, ignoran total o parcialmente el problema… hasta que migran a una versión más reciente de la plataforma y empiezan a reventar por todas partes. Entonces, improvisan cantando los umpalumpas, la culpa es de Microsoft, evidentemente.
¿Se ha dado cuenta ya de cuál es el patrón emergente? Se trata siempre de fallos que se producen al no tener en cuenta la concurrencia. La técnica ingenua de generación de claves primarias funciona mientras hay un solo ordenador. La implementación defectuosa de las operaciones de cadenas funciona incluso cuando hay varios hilos, pero siempre que exista un único núcleo. Los errores de reentrancia de Windows Forms y WPF se producen pero no se notan… hasta que el sistema revienta por causas desconocidas.
Cuando se trabaja con una base de datos relacional, además, en teoría existe una forma muy sencilla de evitar la mayoría de los errores: trabaje con transacciones serializables. ¡Pero la mayoría de los programadores, o desconocen su existencia, o tienen miedo a la pérdida de velocidad! De hecho, la mayoría de las operaciones complejas en las bases de datos habituales pueden implementarse con un nivel de aislamiento más bajo, si se ordenan inteligentemente las instrucciones. Esto es algo, sin embargo, que se encuentra fuera del alcance de la mayoría. Y quien sospecha que hay algo que puede fallar en su implementación, termina cagando dentro del chocolate: ya haremos algo cuando falle.
Otra fuente habitual de tropezones en el cacao: los errores de redondeo. ¿Cuántos programadores, de los que trabajan con aplicaciones financieras, tienen idea sobre los problemas de estabilidad numérica y sus consecuencias en el desarrollo? Es más fácil tener una idea vaga de que existe un problema "teórico", y dejar que sea el desdichado usuario el que hunda sus dientes en la mierda de umpalumpa. Sólo entonces merece la pena hacer algo.
¿Existe alguna solución mágica para evitar sustancias extrañas en nuestros alimentos? Por desgracia, sólo hay una forma, y requiere una cualidad personal muy extraña y poco valorada: la ética profesional. Pero estamos en crisis, y la ética es un bien caro y escaso. Al menos, deberíamos presionar a las autoridades europeas para que los productos de software lleven una etiqueta de advertencia, como las de los sándwiches que venden en las gasolineras:
"Puede contener trazas de cacahuetes, pescado, huevo, gluten
y mierda de umpalumpa."

Etiquetas: ,

36 Comments:

Blogger Junior said...

una pregunta

¿En que año se expandieron los umpalumpa en todo el mundo?

También hay umpalumpas que no usan java y se comportan así..

saludos.

viernes, julio 24, 2009 4:36:00 p. m.  
Blogger Ian Marteens said...

Ugh, los umpalumpas son como los neandertales: al principio no existían, y se extinguen al final de la historia (se los tragó el Oráculo), pero logran transferir algunos de sus genes al resto de la humanidad.

viernes, julio 24, 2009 4:44:00 p. m.  
Blogger Junior said...

Será difícil por no decir imposible erradicar este mal.

Habrá que hacer pruebas de ADN a la persona que elaboro el producto para saber si tiene origenes de umpalumpa.

viernes, julio 24, 2009 5:01:00 p. m.  
Blogger Junior said...

Claro antes de comprar el producto.

viernes, julio 24, 2009 5:03:00 p. m.  
Blogger Ian Marteens said...

Tú mira si viene la foto del autor. Si tiene la piel naranja y el pelo verde, umpalumpa seguro.

viernes, julio 24, 2009 6:05:00 p. m.  
Blogger Junior said...

ok, si es así no es tan difícil reconocerlos, aunque muchos de ellos quiza evolucionaron con el tiempo pero solo en el color y son como los camaleones, cambian de color de acuerdo al sitio donde se encuentren con la diferencia de que esta especie dice que algo es lo mejor hasta que explota y los hace cambiar de color.

viernes, julio 24, 2009 6:23:00 p. m.  
Blogger Ian Marteens said...

Es que las especies evolucionan cuando cambian las condiciones. Son las cosas las que cambian primero. Hasta el 2002/2003, a pesar de los signos evidentes de decadencia, merecía la pena programar en Delphi. A partir de entonces, la relación ha cambiado drásticamente, en favor de .NET y Visual Studio.

Un verdadero umpalumpa, por el contrario, habría permanecido destacando naranja en el paisaje, suspirando por el regreso de los dinosaurios y maldiciendo inútilmente a los mamíferos.

viernes, julio 24, 2009 7:07:00 p. m.  
Blogger Alfredo Novoa said...

Lo peor es que las herramientas de programación también son diseñadas por umpalumpas, porque que DBase no tuviese índices únicos tenía delito, y que los formularios de .NET no funcionen con varios hilos por no se que problema con la API de Win32 también es otra cutrada.

Con SQL Server vale la pena esta al tanto de las novedades porque están corrigiendo problemas importantes.

Por ejemplo con la clausula OUTPUT del 2005 los campos identity se vuelven menos insufribles, el nuevo operador MERGE elimina los problematicos y no estandar updates con joins, y por fin ya era hora se pueden pasar variables de tipo tabla a los procedimientos almacenados.

Por cierto, da la impresión de que sabes que los umpalumpa no leen blogs de programación ;-)

viernes, julio 24, 2009 7:32:00 p. m.  
Blogger Alfredo Novoa said...

Vaya, los umpalumpas de Google han hecho que se duplique el comentario.

viernes, julio 24, 2009 7:38:00 p. m.  
Blogger Ian Marteens said...

Nah, los umpies se lo toman a broma. Quien no lo lee (y debería) es Willy Wonka.

viernes, julio 24, 2009 7:40:00 p. m.  
Blogger Marco Antonio Santin Torres said...

Oye Ian por cierto ¿ya viste que Alfredo creo un foro?

Foro de Alfredo

viernes, julio 24, 2009 7:50:00 p. m.  
Blogger Ian Marteens said...

:) Sí. Tengo aún que pedirle permiso... pero es que soy una persona muy tímida y me tomo mi tiempo para esas cosas. También tengo pendiente contestarte al email. Pero eso no es por tímido, sino por vago.

viernes, julio 24, 2009 8:06:00 p. m.  
Blogger Alfredo Novoa said...

Jolines, no hay que pedir permiso, que se apunte quien quiera.

Lo único para crear nuevos foros, que quien quiera poder crearlos que lo diga y le doy permiso, que eso lo tengo que hacer a mano.

Pero también podeis poner que quereis un nuevo foro en el foro de sugerencias y ya lo creo yo.

viernes, julio 24, 2009 8:28:00 p. m.  
Blogger Ian Marteens said...

Hecho. Me he registrado, y he puesto el enlace en el sidebar del blog.

lunes, julio 27, 2009 12:35:00 a. m.  
Blogger Alfredo Novoa said...

Gracias,

Te he puesto permiso para crear los foros que quieras.

lunes, julio 27, 2009 1:07:00 a. m.  
Blogger Marco Antonio Santin Torres said...

El foro de Alfredo tiene problemas. ¿Que le paso Alfredo?

sábado, agosto 01, 2009 8:18:00 p. m.  
Blogger Al González said...

Yo acabo de entrar sin problemas, Marco. Lo que sí veo es que no me llegaron las notificaciones de las últimas respuestas a mis mensajes. Supongo que fue un breve desajuste.

Saludos.

Al. :)

jueves, agosto 06, 2009 4:13:00 p. m.  
Blogger Manuel said...

Estoy empezando a pensar que los umpalumpas han secuestrado al Sr. Marteens, jeje, o lo que es peor, posiblemente lo hayan "suicidado"...

lunes, septiembre 14, 2009 9:47:00 a. m.  
Blogger Junior said...

Yo pienzo que más bien esta envuelto en un gran megaproyecto que lo tiene bien ocupado; en el cual antes trabajaban los umpalumpas aplicando sus métodos corrocivos.

lunes, septiembre 14, 2009 3:09:00 p. m.  
Blogger Manuel said...

Desde esta entrada y hasta el día de hoy aqui en España no a dejador de hacer mucho calor aunque por suerte estos ultimos días ha llovido algo, pero si a Mr. Marteens no lo han secuestrado los umpalumpas..., que ha sido de el, se me ha pasado por la cabeza que el libro que esta escribiendo realmente es un manuscrito de miles de paginas y que por eso está tardando tanto.

martes, septiembre 22, 2009 1:24:00 p. m.  
Blogger Junior said...

Conociendo a nuestro amigo Ian, con el cual es de los pocos autores de libros de esta temática con el cual podemos hablar tan abiertamente, el cual no es solo autor de escritorio sino que realmente conoce muy bien lo que los desarrolladores necesitamos ya que es su principal oficio desarrollar aplicaciones, no creo que el no haya lanzado el libro por que sean miles de páginas como dices, más bien es que él esta empeñado en hacer un libro que realmente nos sea de buena utilidad y que pueda durar buen tiempo sin quedar obsoleto.

Es de agradecer, si fuera un autor como los mensionados anteriormente de seguro ya hubiese lanzado 5 ó 6 versiones de libros incluyendo en ellos los atajos del teclado y esas tonterias, tratando temas que no se le ve perspectiva de cumplir con el objetivo que deseamos y que muchas veces se tratan de tecnologias que no van a llegar a ningún lado.

miércoles, septiembre 23, 2009 3:44:00 a. m.  
Blogger Manuel said...

Hola Junior, que tal te va? Por cierto alguien de que sigue este blog y se paso o ha cambiado a Visual Studio, está arrepentido y quiere volver a Delphi al super Delphi 2010...

lunes, septiembre 28, 2009 9:49:00 a. m.  
Blogger Junior said...

Si el precio de Delphi se correspondiera con las pocas mejoras que se le hacen quiza se posicionara un poco mejor.

Habra muchos que estan en un camino (Y) donde no encuentran que via usar, pero de seguro micro$oft tiene el reto de mantener Visual Studio como ha estado en estos ultimos años y vendran muchas opciones que lo dejaran en el puesto que esta actualmente.

saludos...

martes, septiembre 29, 2009 3:37:00 a. m.  
Blogger Manuel said...

Hay alguien ahi...?

martes, octubre 06, 2009 8:56:00 a. m.  
Blogger jorge martinez said...

Escribe YAAAAAA

rad studio

o

Visaual studio 2008 con devexpress y c#

domingo, octubre 18, 2009 12:17:00 a. m.  
Blogger jorge martinez said...

Escribe YAAAAAA

rad studio

o

Visaual studio 2008 con devexpress y c#

domingo, octubre 18, 2009 12:18:00 a. m.  
Blogger jorge martinez said...

Escribe YAAAAAA

rad studio

o

Visaual studio 2008 con devexpress y c#

domingo, octubre 18, 2009 12:19:00 a. m.  
Blogger jorge martinez said...

OHHHH gran Guru Deva Marteens

Escribe YAAAAAA

rad studio

o

Visaual studio 2008 con devexpress y c#

domingo, octubre 18, 2009 9:30:00 p. m.  
Blogger Manuel said...

La respuesta a tu pregunta es... Delphi Prism, ni una cosa ni la otra, yo estoy estudiando el asunto. Por cierto a Sir. Marteens no hay que presionarlo, es libre de responder, no tiene obligación.

martes, octubre 20, 2009 11:15:00 a. m.  
Blogger jorge martinez said...

arghhhhhhhhh

jajajajaja

onta el humor

Prism mmm con tantos bandazos como han dado con net antes borland con
los engendros net que han hecho estoy con mis temores
Nota pa que no digan que soy un troyano microsoft el 70% de mis sistemas aun estan en delphi win32

martes, octubre 20, 2009 4:30:00 p. m.  
Blogger jorge martinez said...

a ver si si si si ya pedi mi libro de delphi prism a gopac ta bien
saludos raza

jueves, octubre 22, 2009 1:06:00 a. m.  
Blogger vicente said...

Yo creo que el sr Marteens se dedica ahora al software libre (lease linux) y que por eso no contesta a los plastas de microsoft / borland.

Juaaaaaghhhhh .........

lunes, octubre 26, 2009 5:36:00 p. m.  
Blogger Unknown said...

¿Dónde esta Mr. Marteens? Supongo que todos los que seguían este foro se estarán preguntando lo mismo; me parece muy raro este silencio, en fin, creo que ni dedicarse al software libre, ni estar en un mega proyecto, ni yo que sé, justifica tener abandonado de esta forma a un grupo de seguidores como el que frecuentaba este sitio. Sigo pensando en los sicarios amigos de los Umpalumpas...

miércoles, febrero 24, 2010 10:28:00 a. m.  
Blogger Junior said...

"Supongo que todos los que seguían..."

Yo como muchos, seguimos visitando este foro y aunque su creador no se sienta en animos de escribir en todo este tiempo, aquí siempre encontramos información valiosa. Aunque no veo la razon de que piences que los Umpalumpas lo hayan secuestrado etc., por que el siempre se ha expresado así de las cosas mal hechas. Que hayan personas que encajen en ese patron es lo que ha hecho que mueran en hospitales tantos pacientes por realizarle operaciones que no le tocaban a ellos y se hayan derrumbado edificios por que los que elaboraron e hicieron los calculos no tomaron en cuenta lo que podia fallar.

miércoles, febrero 24, 2010 5:31:00 p. m.  
Blogger Unknown said...

Los "Umpalumas" y los "Mr. Butters's" existen... detras de cada articulo hay personas, que entiendo Marteens se ha encontrado con ellos, lo que pasa que no ha puesto el nombre directamente, porque estaría muy feo... El secuestro, los sicarios, es una forma de hablar, de bromear, de tirar de la lengua, pero nada mas, está claro, y entiendo que no creo que ningún informático sea secuestrado ni asesinado por hacer criticas... Repito no mal interpreteis las cosas, es un poco de humor.

jueves, febrero 25, 2010 9:26:00 a. m.  
Blogger Al González said...

MANUEL dijo:
no creo que ningún informático sea secuestrado ni asesinado por hacer criticas
Tengo que reconocer que aún así se dan otra clase de represalias. :(

jueves, febrero 25, 2010 4:37:00 p. m.  

Publicar un comentario

<< Home