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

29x.org dijo el 2-1-2009 a las 18:49:
Si no es mucha molestia, ¿Algún programador en el público nos puede explicar que pasa aquí?

2Rhadamantis dijo el 2-1-2009 a las 18:53:
jaja al ver esto me recordóa las clasesitas de PASCAL en el colgio xD

5Gargadon dijo el 2-1-2009 a las 18:54:
Completamente LOL, a ver si avisamos a los de Microsoft que el 2008 tuvo 366 días, y así cada cuatro años

6LOL dijo el 2-1-2009 a las 18:57:
@Rhadamantis
Es C#(sharp).
No entiendo que tiene de malo el booleano
,si mostraran todo el booleano se podrida deducir q esta malo.

62Gon dijo el 2-1-2009 a las 19:07:
@x.org: sucede que si consideras un año corriente de 365 días, el código es correcto. Pero en el otro caso, del año bisiesto, incurre en un loop infinito. El error fatal esta en el:
if (days > 366)
Que pregunta “si cantidad de días es mayor a 366″, o lo que es igual, si hay 367 o más días en este año, lo cual en ningún caso ocurre, por lo tanto el loop se vuelve infinito.
debería ser
if (days >= 366)
Lo chistoso fue la solución propuesta por MS de “cargar completamente el Zune, y luego cambiarle la fecha a 1 de enero de 2009 o mayor”. La pregunta es, ¿como diablos cambiarle la fecha si el susodicho aparata está bloqueado? Es como el “No se ha detectado teclado, presione enter para continuar”.
PS: Lo leí primero vía @fcatrin :B

-7lator1 dijo el 2-1-2009 a las 19:11:
quien usa Zune si asta la compañia que le hacia el MKT renuncio al water!!!

-11Perico dijo el 2-1-2009 a las 19:13:
no puede ser un codigo fuente tan flaite ni yo cuando estudie programacion hacia weas tan feas a puros IF JAJAJAJAAJAJAJAJa
Ver Comentario... Jorge dijo el 2-1-2009 a las 19:17 ...

35Jorge dijo el 2-1-2009 a las 19:20:
ahhh ya la pille!!! si los dias son 366 nunca sale del loop
Gon: tienes razon, sorry por mi post apresurado

3Zhekreb dijo el 2-1-2009 a las 19:22:
@LOL: seguramente, pero en un comentario inicial del codigo dice que el nombre del módulo (ese archivo) es rtc.c; lo que claramente implica que el código es C.
//——————————————————————————
//
// Module: rtc.c
//
// PQOAL Real-time clock (RTC) routines for the MC13783 PMIC RTC.
//
//——————————————————————————

0Tu madre dijo el 2-1-2009 a las 19:25:
Creo que el error ya esta solucionado, ya que solo ocurria en los Zune de 30 Gb.
Sera que estas personar nunca actualizaron su dispositivo.
En todo caso para que un Zune > Ipod, en muchisimos aspectos.

4winjaime dijo el 2-1-2009 a las 19:28:
me pregunto cual será la solución “tipo microsoft” que habrá…Espero que no sea: “el 31 de diciembre de 2012 cambie la fecha a 1 de enero de 2013″ o algo asi

4Gon dijo el 2-1-2009 a las 19:28:
@flaco, no cuesta nada definir una constante TRUE O FALSE, en C.

2Mr_Trukit0 dijo el 2-1-2009 a las 19:32:
Jajajajaja el medio owned…
¿Y han lanzado alguna actualización de firmware?

-6oscar dijo el 2-1-2009 a las 19:52:
ajjajajaja, me recuerda la vez que sin querer maté el servidor anakena del DCC con una bomba fork :S

13Kique dijo el 2-1-2009 a las 19:53:
Cualquier parecido con el código fuente de cualquier otro producto de M$ es mera coincidencia...
Ver Comentario... Fray dijo el 2-1-2009 a las 20:03 ...

4Algalord dijo el 2-1-2009 a las 20:04:
Seguramente habrá que descargarse la nueva versión del firmware, un parche que estimo estará disponible en unos tres años más.

0Alfredo dijo el 2-1-2009 a las 20:05:
Se ve que estuvieron apresurados para terminar con el Zune que tanto asi ni se diero cuenta del error (days>366) Esto es imposible ps!! jajaja

5fuelforfire dijo el 2-1-2009 a las 20:11:
Por eso el software libre es tan popular, porque esa clase de errores estupidos de MS, se hubiesen arreglado en un par de dias, si se hubiese dado en una aplicacion opensource. Ademas, el arreglo se hubise hecho publico.
Saludos.

4flaco dijo el 2-1-2009 a las 20:33:
@Gon, obvio, pero para que vas a definir una constante true o false en c# si ya la tiene…
el punto, es que segun mi opinion, el lenguaje es C++

-6Tern dijo el 2-1-2009 a las 20:34:
No sé si sentirme orgulloso pq entiendo q es lo q dice el código o pegarme un tiro por pasar de sentirme Geek a Nerd……
Ver Comentario... JRRB dijo el 2-1-2009 a las 20:43 ...
Ver Todos Páginas: [1] 2 3 4 Próximos 30 Comentarios →
Ver Todos Páginas: [1] 2 3 4 Próximos 30 Comentarios →