Saturday, January 03, 2009

Root cause of the Zune fail


Looking to assign blame for the massive Zune outage (or, as I like to call it, Z2K)?

Anything but iPod and I have a Zune report that the root cause is probably a fragged power management chip. And the outages aren't restricted to Zunes alone.

Earlier the code for this infamous Zune bug showed up on Digg. This code is actually code written for Freescale’s MC13783 PMIC (PDF Whitepaper) [Ed: PMIC == Power Management Integrated Circuit] and it seems like it's affecting other players that have this PMIC like the Gigabeat S Series...

...This makes a lot of sense since the Zune 30 was heavily bases off of the Toshiba S series. So far it looks like the Gigabeat owners are trying the fix as the Zune 30 owners, letting it fully discharge...

...So far one user has been successful using this method and changing the date on his PC.

I'll stick with using my BlackBerry 8320 Curve as my music device and my phone, thanks. Consider: stick a 16GB MicroSD card in it, upgrade the BlackBerry client software to version 4.5, and ***voila*** you get a built-in videocamera, still camera with flash, awesome MP3 player, real HTML email and web-browsing...

...plus this fantastic new feature called "buttons". This radical innovation lets you use "keys" -- almost like a typewriter keyboard -- to send email. What will they think of next?

Update: Here's the faulty source code, courtesy Makezine:

year = ORIGINYEAR; /* = 1980 */

while (days > 365) {
if (IsLeapYear(year)) {
if (days > 366) {
days -= 366;
year += 1;
}
} else {
days -= 365;
year += 1;
}
}

Can you say "infinite loop"? In my 2005 post Ban the while loop, I explained to developers my contention that the use of a while loop is tantamount to a software engineering felony.

But, considering these are probably the same guys behind the egregious Writing Solid Code -- quite possibly the most unintentionally hilarious book title of all-time -- I'm frankly not surprised.

No comments: