Monday, January 18, 2010

Diagnosing Poor iPhone Battery Life

My iphone's battery life plummeted last week, from a half day to just a few hours. Naturally my warranty had just expired, and I feared that I'd have to buy a new phone, pay an exorbitant battery replacement fee, or spend time learning how to replace the battery myself.

Ultimately, I found the cause -- a botched migration from one Exchange server to another -- and I was able to restore battery life to normal. Here's how I diagnosed the problem:

1. Search Google. This wasn't very fruitful. Most of the advice I found to increase battery life was tantamount to "Don't use your phone the way you want to."

2. Ask on Twitter and Facebook. Lots of friends came to the rescue. One friend had had success using a "full restore". Another had tried two full restores unsuccessfully, and eventually exchanged his phone for another at an Apple Store. Thankfully I didn't have to go to those extremes. The most helpful response was the question "Is your phone warm when it's not charging and you're not using it?" Answer: yes.

3. Delete applications you don't use. I had accumulated quite a few applications that I never use. Deleting all of them was a painless test to see if one was burning up the battery. No luck in my case.

4. Disable push notifications. I like push notifications, so this wouldn't be an acceptable solution, but it's a good test. I disabled global push notifications and each application's sounds, alerts, and badges. Still no luck in my case.

5. Delete email accounts. I remembered that my company's IT group had recently changed the address of our Exchange server. To get my email after the switch, I had changed the hostname on my phone. I suspect my phone retained the old hostname somewhere and periodically tried to connect to it.

After deleting my Exchange account, my battery life improved again. I recreated the Exchange account, and my phone continues to behave normally.

Tuesday, January 12, 2010

Using Twitter as my RSS/Atom Feed Reader

Update 2010/01/18 3 PM: After several attempts, I'm giving up on making this work via FriendFeed. There have been several prolonged periods (tens of hours) during which FriendFeed posts no items from my Google Reader feed.

Update 2010/01/16 1 PM: FriendFeed didn't post automatically from the original Google Reader feed I created. At Chris Myles's suggestion, I created a new label "FeedToTwitter" in Google Reader that does not contain any spaces. Posts are now flowing from 115 different RSS and Atom feeds, through Google Reader, through FriendFeed, to Twitter, where I can read them from any Twitter app.

Update 2010/01/13 7 PM: I'm using FriendFeed instead of Twitterfeed.  FriendFeed consumes my Google Reader feed and posts to Twitter in real time.  I created a new FriendFeed account and configured it to post to Twitter from the FriendFeed Tools page.

Update 2010/01/13 10 AM: I'm disappointed to discover that this idea doesn't work in practice.  Only a small percentage of the items shared via my Google Reader reach the Twitter account I created.

I realized recently that I'm getting most of my news from Twitter, and I had stopped reading the feeds I had subscribed to in Google Reader.  It's not that those feeds don't have interesting content.  But reading them isn't convenient, and the Google Reader user interface makes me feel that I should try to read everything, an impossible task.

Instead, I'm using Google Reader and Twitterfeed to feed all of that content to Twitter.  Here's how:

  1. I share an aggregated feed from Google Reader.  From Manage Subscriptions, I add all of my subscribed feeds to a new folder "Feed to Twitter". On the Folders and Tags view, I share the new folder. Google Reader creates a public page and a public feed for the shared folder.
  2. Twitterfeed automatically tweets each of the items in the shared feed. I use Twitterfeed to subscribe to the shared feed and tweet each item using a new Twitter account that I created.
  3. I follow the Twitter account that tweets feed items. I follow the new Twitter account from my main Twitter account, and I see feed items interspersed with Tweets in my timeline.

This method has some shortcomings:

  1. I'm accepting a lack of privacy. All the feeds I follow in Google Reader are visible to everyone.  That doesn't bother me.
  2. Twitterfeed delays posting feed items. Google Reader publishes my shared items in real time using PubSubHubbub, but Twitterfeed doesn't support real time subscriptions yet.
On balance, it's a big win for me:
  1. I don't feel compelled to read every item. The stream passes by. When I want to read, I read. When I want to stop reading, I stop.
  2. I have more choice of readers. I can use any of the growing number of Twitter apps to read my feeds, whereas RSS reader development has stagnated.