1292
En un foro de una importante página de programadores informáticos, se debatía sobre cuál era el fallo de programación (bug) más difícil de encontrar que uno se había encontrado a lo largo de su vida. El sistema permitía la votación de las respuestas, con lo que al mismo tiempo tenía un valor de encuesta. El error que ocupaba el primer puesto era el siguiente. El foro en inglés: stackoverflow.com/questions/169713/whats-the-toughest-bug-you-ever-fou
menéame
Manda huevos también guardar una fecha en texto, aunque a saber de qué sistema estamos hablando
Y #11 lo que ha hecho daño a los programadores es que programe tanta gente a la que no le gusta programar y la subcontratacion... pero paso de ponerme serio
Lo que de verdad ha hecho un daño HORRIBLE a la programacion es el ctrl+c, ctrl+v.
Programar es un arte, el que lo dude miserable! </mode ansar>
Todos esos momentos se perderán en el tiempo como lágrimas en la lluvia.
Es hora de morir."
sigt.net/wp-content/uploads/El_caso_del_email_de_las_500_millas.txt
Tú te encuentras con que un programa falla 3 días al año y funciona bien el resto del tiempo y alucinas pepinillos (aunque admito que lo primero que podría ocurrísele a uno sería mirar que pasa con las fechas).
Pero miremos el segundo caso: una cámara falla cuando el jefe entra en plano. Ahora dime lo que hay que mirar, sin mirar la solución
Sé que suena a que es lo mismo, pero NO lo es.
Lo primero que hay que hacer -he visto la solucion, es lo primero que yo haria- es un mail que pasara por todos tus compañeros comentando como la fealdad de el CEO ha destruido un maravilloso software.
Ese error si mola, es hasta gracioso, pero el que ha ganado parece 'facil' de sacar -vamos, que es muy curioso, pero no me parece demasiado dificil de sacar debuggeando, de hecho el tercer miercoles que te entre canguelo de la ostia que se ha pegado la aplicacion ya sabras que 'solo casca los miercoles' sin mirar el codigo y el primer miercoles de octubre, si no lo tuvieras ya arreglado, fijo que ibas con dodotis al curro-
-Cierto teléfono móvil obsoleto en el bolsillo del propietario
-una poderosa antena direccional cercana
-un blindaje insuficiente (para este caso) del ordenador de a bordo
Por lo visto al pasar por el foco de la antena el móvil se saturaba produciendo una interferencia de RF tan cercana y potente que afectaba al ordenador.
Solución: cambiar de móvil.
Aprendí desde entonces a buscar los problemas primero en los lugares más obvios y simples, para luego seguir con los complejos y difíciles. Me he ahorrado muchos "días de enojo y agotamiento" desde entonces.
Otro también muy bueno:
Cuando yo vendía ordenadores en una tienda, vino un cliente a comentarnos que en su ordenador recien comprado, el ratón funcionaba bien por las mañanas y por las tardes / noches, pero a mediodía dejaba de funcionarle
Imaginaos la cara de pasmo. Al final resultó que el puesto de trabajo estaba debajo de una ventana que al mediodía recibía el sol de pleno. El plástico del ratón era demasiado fino, y la luz lo traspasaba ligeramente, anulando el mecanismo optomecánico del ratón
Una aplicación de reserva de coches online. Al seleccionar ciertas fechas de inicio y fin el programa no calculaba bien los días de reserva y cascaba... Al final era porque la función encargada de contar los días transcurridos entre dos fechas lo calculaba contabilizando los segundos de diferencia entre ambas fechas. Pues bien, cuando entre la fecha de inicio y fin estaba el día donde se adelantaba una hora el reloj o se atrasaba una hora, el calculo salía con decimales y se iba todo al carajo... ¡Alucinábamos con el error hasta que caímos en el tema horario! ^_^
El caso es que es un error bastante fácil de solucionar: Un vistacito a la msdn o a google y rápidamente lo arreglas, pero te encuentras gente en la facultad que llega a echarse horas intentando hacer compilar los corchetitos de marras
De lejos lo más agradable para programar, por la claridad, facilidad de uso y por la sintaxis que evita que tú mismo metas la pata sin querer, es Python. Dicen por ahí que Ruby es aun mejor, pero aun no lo he probado.
Eso explica el porqué del concepto que la gente tiene de los informáticos...
De lejos lo más agradable para programar, por la claridad, facilidad de uso y por la sintaxis que evita que tú mismo metas la pata sin querer, es Python (probé también Ada, pero es demasiado estricto para mi gusto). Dicen por ahí que Ruby es aun mejor, pero aun no lo he probado. Espero con ansia que Google o el equipo de PyPy saquen por fin la máquina virtual de Python con JIT para que muchas más aplicaciones sean viables en estos lenguajes.
En serio, a estas alturas los programadores no deberían andar aun perdiendo tiempo en asignar memoria a mano excepto para el código más crítico. Es una tarea repetitiva, que genera bugs a punta pala y no aporta ningún beneficio.
Dichoso commit work sin wait!!!!
Y haciendo honores a mis antiguos compañeros de trabajo... "Unknown character 0xb7". Ese error se lo encontraron compilando un programa simplón de C puro en una línea tristona como pudo ser un printf cualquiera. Comentaron la línea del error, la borraron, seleccionaron el texto y escribieron el "Hola Mundo!".... y el error persistía, hasta que después de algunas horas.... Ctrl+E ... y descubrieron una gigantesca línea en cuyo final aparecía agazapado el puntito del 3 ("·") ... el famoso unknown character ^^ ahora ya menos unknown
.... el error más dificil... siempre está por llegar
Secundo lo de D. Te votaría positivo si pudiera. Desde el ban day no he podido votar nada.
www.microsiervos.com/archivo/ordenadores/email-500-millas.html
No es lo mismo "thread safe" que tenga elementos estáticos. Obviamente si modificas el mismo objeto desde distintos hilos y no controlas las condiciones de concurrencia te pasarán cosas raras, para eso lo mejor es crear un objeto nuevo por cada hilo (o sincronizar el objeto).
Tras echar un vistazo y pedirles a cada uno que lo encendieran, descubrió que era por el monitor (uno de 17 pulgadas, muy viejo). Ella encendía primero el monitor y luego la CPU, pero el lo hacía al revés. Cuando el monitor se encendía daba un tirón tan fuerte de corriente que, si la CPU ya estaba encendida, se colgaba.
“Bueno, no habíamos recopilado suficientes datos como para estar seguros de lo
que estaba ocurriendo hasta ahora.” Lógico, estoy hablando con el jefe del
departamento de estadística
me parece mejor ese que el de el meneo. Por cierto el del meneo al principio pense que era ese que no se si sera leyenda urbana del servidor que se descectaba una vez a la semana a una determinada hora, se pusieron a revisar mil logs, pruebas y mas pruebas y no sabian que fallaba, y un dia que estaba el administrador en la sala de los servidores en la hora fatidica, ve como entra la señora de la limpieza, desconecta el cable de alimentacion, enchufa la aspiradora y se pone a pasarla, y el otro al lado perplejo
Como dice #48, los problemas relacionados con condiciones de carrera suelen ser los que producen resultados más desconcertantes y difíciles de depurar.
</rms>
#2, ¿de verdad has peleado con muchos bugs y este te ha parecido acojonante? 0.o
Un hombre que acababa de comprar un coche nuevo (no recuerdo de qué casa) se quejó al servicio técnico de que cuando salía de cierta tienda de comprar helado el coche no arrancaba... pero sólo si el helado era de chocolate. Si el helado era de cualquier otro sabor el coche funcionaba sin problemas. Como es lógico, en el taller se lo tomaron a cachondeo, hasta que después de muuuchas quejas la casa de coches le envió a un técnico. El técnico acompañó al hombre a comprar helado y confirmó que el problema era real... e inexplicable. Tras muchos meses de deliberación, un diseñador dio con la causa del problema.
Resultaba que, al ser el chocolate el sabor más vendido, ese helado estaba cerca de la entrada de la tienda, mientras que los demás estaban al final. Así que cuando el hombre compraba helado de chocolate tardaba bastante menos en volver al coche que cuando compraba otros sabores. Eso significaba que al coche no le daba tiempo de enfriarse y se ahogaba. En la casa de coches solucionaron el problema de diseño y ahora esos coches no se ahogan aunque tardes poco en volver a arrancarlos.
Si alguien se acuerda de qué casa era ese coche se lo agradeceré.
Ya en casa, instalo windows, instalo photoshop y trabajando se apagaba el ordenador.
Total, lo mando al distribuidor, y me lo devuelven diciendo que a ellos les funcionaba perfectamente.
Sigo con él, y lo mismo, peta.
Consigo sacar un procedimiento que siempre lo colgaba: abrir photosop y crear un documento nuevo de nosecuantos megas. Siempre se apagaba.
Lo mando de nuevo y les explico qué hacer para que les petase. Me llaman diciendo que no, que no peta.
No es posible, a mí siempre se me apagaba.
Me cabreo y cojo el coche y me voy 100 kms a donde estaban ellos. Hago yo las pruebas y ¡no se apagaba!
Vuelvo a casa con el ordenador, y me seguía haciendo lo mismo.
Un "tonto" de esos que dicen tonterías tol día me dice "cambialo de enchufe, a ver..."
Sopotamadre... fue enchufarlo en otro enchufe (¡a tan sólo 10 cms de distancia!) e iba como la seda.
Nunca he entendido el porqué...
Igual tiene que ver con la toma de tierra de tu enchufe.
HACKERZ STOLE MAH WALLET!
Sin duda, el problema más difícil de solucionar, sobre todo cuando las "race conditions" no están bien definidas o no son óptimas.
"El error técnico está en los controles de sesión; es un defecto de programación de base. Mezclan autentificación por sesiones, cookies y variables, una auténtica chapuza de programación."
Venga, una tilita y a seguir peleando
PD: con respecto a la pregunta que me haces: "Si, estoy haciéndolo ahora mismo con este mensaje ;)"
Me tuvieron que hacer las fotocopias.
Nunca supe que fué (supongo que mala suerte), pero la cosa duró dos días. Pensé que era una broma que alguien me estaba gastando, pero nunca me lo contaron y tampoco se me ocurre como pudieron hacerlo.
Desde luego es un bug en el que tienes que caer en el motivo del problema, aunque creo que yo he tenido bugs más complicados.
Ahora que se me pase por la cabeza, me acuerdo que un bot mio para salas Jabber se colgaba estrepitosamente en algún momento, sin saber exactamente en cual. Sin pistas ni nada, al final descubrí que, el sistema de logs guarda todo lo que se escribe en la sala con datos como nombre, fecha, comentario... pues bien, al cambiar el titulo de la sala (mi cliente no me avisaba cuando se cambia el titulo, lo que dificultó más la tarea), no hay un usuario que envié la corrección, lo que provocaba un efecto mariposa que acababa colgando el bot. Me costó lo suyo descubrirlo.
Resulta que por alguna razón los scripts de ese tipo no admitían acentos en los comentarios (esto fue hace varios años ya), los cuales deberían ser ignorados por el parser en cualquier caso. Manda huevos.
Y con respecto a los bugs mencionados... lo siento por vosotros pero aparte de los Deadlocks en la programación multithread el resto no son de mucha dificultad. Como ya ha dicho T-1000, poneros a programar videojuegos... ya veréis lo que es bueno... (y bueno la detección de colisiones al píxel tampoco tiene nada...)...