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)
Publicado por Alexander Schek el 2 de January 2009 en la categoría Destacados, Software con los tags Código Fuente, Microsoft, Programación, Reproductor MP3, Zune. Tiene 101 comentarios.
101 Comentarios
Autopsia al código fuente del Zune revela orden de suicidio

-1Lolo dijo el 4-1-2009 a las 15:05:
Es triste… nadie reconoce el trabajo de los informáticos, sólo se acuerdan de nosotros cuando ocurren embarradas como éstas…
:’(

1Maxi dijo el 6-1-2009 a las 09:35:
el lenguaje de progranmacion que usan es el maxelocked code!! aprendan freakis lolS!!!

0Al otro lado del mostrador » ¿Qué les pasó a los Zunes de 30 gigas?, estábamos allí dijo el 8-1-2009 a las 05:39:
[...] varios blogs y webs, (aquí por ejemplo en FayerWayer) se ha dado la explicación técnica de como se ha producido ese fallo. Recomiendo la lectura de [...]

0Fernando dijo el 8-1-2009 a las 09:34:
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.
El 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.

0citadino dijo el 10-1-2009 a las 22:49:
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.
Tip para sus próximos proyectos de programación…

0Duende dijo el 31-1-2009 a las 02:57:
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
ciao

0Brandon Alvarez dijo el 6-2-2009 a las 17:47:
jajaja lo bueno esque solo es con el zune 30GB con el 80GB no!! y menos con el 120GB ok Salu2

0Don QUijote de Nicaragua dijo el 2-3-2009 a las 18:08:
Bueno, 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.
Ver Todos Páginas: ← 1 2 3 [4]