Autopsia al código fuente del Zune revela orden de suicidio
(c) Pastie.org
Para los más fanáticos o para aquellos que requieren de una explicación lógica ante un problema complejo, ya está disponible el código de programación que hizo que miles de reproductores Zune dejaran de funcionar colectivamente. El error comienza en la línea 249.
En circunstancias normales, esto funciona muy bien. La función sigue restando ya sea 365 o 366 hasta que se reduce a menos de un año para luego convertirse en el mes y el día de mes.
Lo que pasa es que en el caso del último día de un año bisiesto, continúa hasta que llega a 366. Debido al if (days>366) la ejecución para de sustraer si el bucle (loop) pasa a ser un año bisiesto. Pero 366 es demasiado grande para salir del bucle principal, lo que se traduce en que el Zune continue en el loop infinito sin hacer nada.
Si el error no se arregla, lo mismo va a suceder el 31 de diciembre del 2012… Microsoft, tienes 3 años… ¿alcanzarás?
Link: PQOAL Real-time clock (RTC) routines for the MC13783 PMIC RTC (Pastie.org)
Japoneses crean "Robot Avatar"
México ocupa el último lugar en seguridad infor...
Si alguna vez pierdo un brazo, quiero tener est...
Mozilla planea una versión "Metro" de Firefox p...
Imperdible: 7 videos nocturnos de la Tierra des...
Una nueva "ley SOPA" se estaría gestando enmasc...
Steve Jobs fue premiado anoche con Grammy póstumo
Europeos se manifiestan en contra de ACTA
96 Comentarios
Autopsia al código fuente del Zune revela orden de suicidio
Tanto color por un signo =.
Responderjajajajaja
El error no es que days = 367, eso es correcto, ya que ese día es el que tiene que convertir a primero del año próximo.
ResponderEl problema es el while. Debería ser un if.
Al ser un while, el días 366, entra en el bucle, pero como es bisiesto aún no tiene que pasar a primero de enero, por lo tanto no cambia la variable days y no sale del bucle.
Creo que deberían ser más respetuosos con el trabajo de otros, este es un error simple, pero que le puede pasar a cualquiera, es fácil desde el anonimato de internet acusar a un programadro de haberce equivocado en una línea de código, pero los que programamos día a día, sabemos que estos errores son frecuentes y no son fáciles de evitar.
Un saludo.
Aqui creo que la metida de pata viene de usar directamente los números de días dentro del código y no haberlos declarado como nombres de constantes al inicio del script/programa. Aunque parezca bien poner la cantidad de días del año directamente en TODO el código, si hubiesen usado dos constantes con nombres como "TotalDaysNormalYear" y "TotalDaysLeapYear" hubieso sido más fácil leer el código para distinguir los dos condicionales (el del "if" y el del "while") y evitar el error. Una persona tal vez cansada o apática se podría confundir tratando de diferenciar entre los números 365 y 366.
ResponderTip para sus próximos proyectos de programación...
yo no creo que los de microsoft suelten asi no mas el codigo de sus aplicaciones.... de donde lo sacaron es una pagina para colocar codigos fuentes .... si es un chiste... (aparte del "error") pues no lo entendí.. saludos
Responderciao
jajaja lo bueno esque solo es con el zune 30GB con el 80GB no!! y menos con el 120GB ok Salu2
ResponderBueno, ahora que a veces miro mis errores en los sistema que desarrollamos ya me siento mas tranquilo jajaja al mejor mico se le cae el sapote como decimos aqui.
ResponderDeja tu Comentario