Extended Warranties Value for Money

Alexander Micek’s post “When Information Overwhelms Facts” (via Daring Fireball) has some interesting commentary on a laptop reliability study that has been making the rounds recently.

In the comments Tonio Loewald stated that

Laptop failure rates of 20-30% over three years certainly seem pretty accurate based on my experience (and that’s how Ars Technica looked at it), so the “value for money” equation for extended warranties pretty much comes down to 0.15 x purchase cost (since your laptop has about a 15% chance of failing due to reliability issues after its standard warranty expires).

This would mean that AppleCare on a $1699 MacBook Pro is worth about $255. Apple charges $349 for this coverage, but it also includes 3 years (well, 33 extra months) of phone support. You can decide if that’s worth it for you, but it’s certainly not unreasonable.

Looking a bit closer, the report claims a 31% total failure rate over 3 years, with 10.6% from accidental damage and 20.4% from hardware malfunctions. You might be able to get accidental damage covered under warranty, especially if the company uses 3rd-party vendors (I’ve been told by Dell techs “I don’t care if you poured a can of Coke in the machine”), but such failures are generally specifically excluded from coverage, so lets go with the 20.4%. The paper shows that the 1-year hardware malfunction rate is 4.7%, so that leaves a 15.7% failure rate over the 2 out-of-warranty years. This agrees quite well with Tonio’s claim.

The other term in the equation is more suspect. The Square Trade report doesn’t give any details on the failures making up that 20.4%, but it seems likely that almost all are single-component failures, which would not require replacing the whole system. The actual value equation is more like:

value = 0.16 * average repair cost.

Of the 7 laptops I’ve owned over the past 15 years I’ve had one screen, one hard drive, one trackpad, one motherboard, and one power supply fail. None of the repairs were significantly over $300, and none of the machines were under $1000 new (most were quite a bit more!). A bit of lazy Googling seems to back this sub-$300 average repair bill, if someone has current, reliable numbers on this I’d love to see them.

Even if we’re generous (pessimistic?) and double the repair bill, that extended warranty has an expected value of about $95. And since we’re on a 3-year cycle here, what happens if the failure happens in the 35th month? Are you going to pay for the repair or just buy that replacement system a month early?

The bottom line is that, like most kinds of insurance, the vendor on an extended warranty is assuming a risk in exchange for profit. The average consumer isn’t going to get back anywhere near the cost of the coverage. Even those needing one typical repair are going to break even at best. You might be able to get additional value out of extras like battery replacement, but in general extended warranties don’t make a lot of sense.

Tags: , ,

iPhone OS 3.0.1 Released

Apple has released iPhone OS 3.0.1. All iPhone users can (and should!) update for free through iTunes. If iTunes does not notify you that the update is available, click the “Check for Update” button on the device summary tab.

This update fixes the much-publicised SMS vulnerability, which could allow an attacker to access a phone through a series of SMS messages, only one of which is visible to the user. It seems the bug is in the baseband code, possibly in reference code from the chip vendor, since a number of devices from different vendors are (or were) reportedly vulnerable to variants of this attack, including Android and HTC WinMo devices.

Apple’s knowledge base article on the update has little new info.

iPod Touch users are unaffected by this update, since they do not have SMS capability. The iPhone OS for iPod Touch remains at version 3.0. The update does not seem to affect tethering either.

Tags: ,

Detecting when Bluetooth is disabled with GKSession

Edit: As noted in the comments, this technique no longer works in iPhone OS 3.1.

If you are writing an iPhone GameKit app without using GKPeerPickerController (as I did in PhotoBeamer), you need to detect when Bluetooth is disabled and ask the user to turn it on in the settings app. Apple doesn’t provide a way for a developer to enable Bluetooth other than through GKPeerPickerController.

This is pretty easy to do. First, create your GKSession and set it to be available:

    session = [[GKSession alloc] initWithSessionID:kMyAppSessionID
                                       displayName:nil
                                       sessionMode:GKSessionModeClient];
    session.delegate = self;
    [session setDataReceiveHandler:self withContext:nil];
    session.available = YES;

Next, set up your - (void)session:(GKSession *)session didFailWithError:(NSError *)error delegate method to detect when Bluetooth is not available and alert the user:

// GKSessionErrorDomain causes link error (rdar://problem/7014349)
#if 0
#define kGKSessionErrorDomain GKSessionErrorDomain
#else
#define kGKSessionErrorDomain @"com.apple.gamekit.GKSessionErrorDomain"
#endif
 
- (void)session:(GKSession *)session didFailWithError:(NSError *)error {
    if ([[error domain] isEqual:kGKSessionErrorDomain] &&
        ([error code] == GKSessionCannotEnableError))
    {
        // Bluetooth disabled, prompt the user to turn it on
    } else {
        // Some other error, get the description from the NSError object
    }
 
    // destroy the GKSession and clean up
}

The GKSessionErrorDomain symbol causes a link error for me, so I’m temporarily using the constant string instead. When Apple fixes the SDK, I’ll change that #if 0 to use the official symbolic name.

Note that this error will sometimes occur on a reconnection attempt even when Bluetooth is enabled, presumably because the old session is still partially active.

It would be nice to have a more user-friendly way to turn on Bluetooth without leaving the app and without using the full GKPeerPickerController UI. I’ve filed a bug report (rdar://problem/7061502) asking for this functionality. You should file one too.

Tags: ,

GameKit Troubleshooting

EDIT August 19, 2009: Added information about server timeouts.

GameKit is a new feature in iPhone OS 3.0 that allows apps to easily exchange data over a Bluetooth Personal Area Networking (PAN). Apple did a great job making this functionality available, but there are a few issues users may see with these applications. If you are having problems connecting with a GameKit app such as PhotoBeamer and BeamCatcher, try the following steps to resolve the issue.

  1. Be sure you are using a supported device. The original iPhone (which has a silver back) and the original iPod Touch (which lacks hardware volume controls on the side) do not have the necessary hardware to support PhotoBeamer or other GameKit apps.
  2. Be sure Bluetooth is on. You should see a Bluetooth icon next to the battery icon like this: Bluetooth In Status Bar. It’s OK if it’s grey, but it must be there.[1]
  3. Turn off WiFi. The WiFi and Bluetooth radios operate on the same frequency band and share an antenna. Turning off WiFi ensures that the maximum bandwidth is available to the Bluetooth connection.[2]
  4. Be patient. The Bluetooth radio powers down if it has not been used for a while, and takes some time to start up. It can also take some time for two unpaired devices to synchronize and start to transfer data. Allow a minute or so before giving up on a connection. It’s often faster, but this is not something we have control over.
  5. (Added 8/19/09) If changing servers, be prepared to wait. Developers do not have direct control over the Bluetooth PAN. It is created automatically when a connection is made, and is torn down after it has been idle for some time. Unfortunately, each device can only have one outgoing (client mode) PAN active at a time. For PhotoBeamer, this means that if you are viewing photos from one friend, then try to disconnect and view another friend’s photos, it will take a long time for the second friend’s phone to show up. This can also happen when switching between different PAN apps.
  6. If all else fails, restart the app or even the device. Sometimes the resolver just stops seeing a particular device.[3] We expect this to improve with future iPhone OS updates as the technology matures.

Networking is easy in a perfect environment. It’s hard in the real world (at the OS level at least, modern operating systems shield the developer from much of this), and it’s even harder when it’s a decentralized, low-power wireless network like Bluetooth. I spent years working on this sort of thing at a very low level in very demanding environments. I definitely feel for the Apple engineers trying to make this a smooth, painless user experience, but it’s not quite there yet. Until it is, I’ll continue to look for new ways to improve the experience within the confines of the iPhone SDK.

  1. Apps that use the Apple-provided peer picker will offer to turn on Bluetooth for you. Apps such as PhotoBeamer which allow connections at any time or use a custom peer selection UI for another reason can warn you that Bluetooth is disabled but can not turn it on. You need to go to the Settings app and turn it on yourself. [BACK]
  2. See, you have to go to the Settings App anyway! [BACK]
  3. (Added 8/19/09) This is probably because of the limited number of outgoing PAN connections and idle timeout issue. [BACK]

Tags: , , ,

PhotoBeamer Coverage

Since PhotoBeamer went live, I’ve been watching the comments and reviews coming in and working on a number of updates and improvements. I’m just about ready to submit the 1.1 version to the App Store. The new version has a number of improvements I think you’ll like.

We’ve also sent out a number of promo codes to various review sites, so hopefully we’ll see some in-depth reviews soon. In the mean time, I found launch-day reviews from iSmashPhone and App Advice. If you know of another site that’s reviewed PhotoBeamer and BeamCatcher, let me know!

Update: PhotoBeamer was reviewed on iLounge today. They rated it a B-, and said “A legitimately useful tool”.. “Apple should add more features like this but until it does, PhotoBeamer is a fine option”. They did seem to miss that BeamCatcher is available as a free viewer though. (added July 22, 2009)

Tags: , , ,