Betazeta Networks:BelelúBólidoCHWFayerWayerFW BrasilFerpleiLUPANiubieSaborizanteVeoVerdeWayerless MCUZimio Versión Movil

Temas Calientes

Autopsia al código fuente del Zune revela orden de suicidio

96

(c) Pastie.org

(c) Pastie.org

(c) Pastie.org

(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)

96 Comentarios

Autopsia al código fuente del Zune revela orden de suicidio

Páginas: 1 2 3 4
Ver Todos
Thumb up 0 Thumb down 0 avatar_donboa donboa dijo hace 3 años

Tanto color por un signo =.

jajajajaja

Responder
Thumb up 0 Thumb down 0 avatar_Fernando Fernando dijo hace 3 años

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.

Responder
Thumb up 0 Thumb down 0 avatar_citadino citadino dijo hace 3 años

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...

Responder
Thumb up 0 Thumb down 0 avatar_Duende Duende dijo hace 3 años

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

Responder
Thumb up 0 Thumb down 0 avatar_Brandon Alvarez Brandon Alvarez dijo hace 3 años

jajaja lo bueno esque solo es con el zune 30GB con el 80GB no!! y menos con el 120GB ok Salu2

Responder
Thumb up 0 Thumb down 0 avatar_Don QUijote de Nicaragua Don QUijote de Nicaragua dijo hace 3 años

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.

Responder
Páginas: 1 2 3 4
Ver Todos

Deja tu Comentario

La opción de comentar está abierta a todos los usuarios, pero te pedimos por favor mantenerte dentro del tema del artículo y no publicar comentarios ofensivos o publicidad basura. Nos reservamos el derecho de eliminar cualquier comentario que no cumpla estas reglas.

Para que aparezca tu foto en vez del icono genérico en tu comentario, el email con el que comentas debe estar inscrito en Gravatar.