Archive for category Computers

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: , ,

Using WPA WiFi Networks With the Nintendo DSi

The Nintendo DSi has support for WiFi networks, including WPA. Most personal WPA networks use a passphrase instead of the hexadecimal keys used in older WEP setups. The WPA standard supports passphrases of 8 to 63 printable ASCII characters, which are converted to a 64 digit hexadecimal number using a hash of the passphrase and the SSID (see more at WikiPedia).

Unfortunately, the DSi does not allow you to enter a passphrase, you have to enter the 64 digit hexadecimal key. If your router doesn’t show the key (mine doesn’t), you can calculate it using the WPA PSK Generator from the authors of Wireshark (a great network analysis tool).

If you have access to a Linux system with the wpa_supplicant tools installed, you can do this at the command line using:

wpa_passphrase ssid passphrase

Tags: , , , ,

Installing AdHoc Applications on the iPhone

If you’ve received an AdHoc iPhone application (a file with a .app extension) and associated provisioning file (a file with a .mobileprovision extension), follow these simple steps to install it on your iPhone.

  1. Connect your iPhone or iPod Touch to a computer with iTunes installed.
  2. Launch iTunes and switch to the Applications section of the Library
    iTunes Library Application Section
  3. If this is your first install of an app
    1. Save the provisioning file to your desktop…
      Saved Provisioning File on Desktop
    2. and drag it into iTunes
      Dragging the provisioning file into iTunes Library
  4. Save the application to your desktop…
    App saved on Desktop
  5. and drag it into iTunes
    Dragging the app into the iTunes Library
  6. Select your to your iPhone or iPod in the Device section in the left column of iTunes; then go to the Applications tab.
    iTunes Device Applications Tab
  7. Make sure you’ve either selected “All Applications” or that the checkbox next to the new app is selected.

  8. Click “Sync”
  9. Enjoy!

Tags: ,

CPU vs GPU

The Mythbusters demonstrate the difference between a CPU and a modern GPU using paintball-wielding robots:


CPU vs GPU from Juan Diez on Vimeo.

VMWare network devices and udev

I’ve been struggling for a while trying to get udev to maintain device names for vmxnet devices when running in a virtual machine. Well, I finally figured it out. The 75-persistent-net-generator.rules script in Gentoo was making rules that looked like:

SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:0c:29:0b:02:d2", NAME="eth0"

These seemed to be silently ignored.

After an emerge --sync; emerge -u world last night, the vmware devices started getting IDs following the highest-numbered eth device. These rules would be added to 70-persistent-net.rules, and on the next boot the devices would move up even higher, causing all network device config settings to be ignored.

I noticed that the new rules added to 70-persistent-net.rules were of the form:

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:0c:29:0b:02:d2", NAME="eth0"

(ATTRS was replaced with ATTR), which just means the match is done on the specific node rather than checking all of the parents.

After a lot of painful attempts to fix this, I finally found the problem. Apparently the DRIVERS key is unset at this point for the vmxnet driver. I removed that test, so that I have:

SUBSYSTEM=="net", ATTR{address}=="00:0c:29:0b:02:d2", NAME="eth0"

which now works.

Phew!