Business Card: bowen@dwelle.org
Smoothbeats.com
KALX Berkeley    WSUM radio

WFMU radio

Yes, I stood in line. My old phone was crunched – not dead, but it would have cost more to buy a replacement screen than to simply upgrade/replace it.

Bugs/issues

  • Battery life is definitely much worse. Received wisdom is that this is due to the 3G radio… Turning off 3G to save battery life really isn’t practical without something like a single button toggle app — any takers?
  • The new device won’t take a charge from the little Belkin Griffin adapter that I have in the car. Apparently this is a known issue. Luckily, this adapter is in two parts, the plug that goes into the 12V “lighter” socket, and a USB-iPhone cable that plugs into that.  It turns out that while the Griffin “USB” cable doesn’t work with the new phone, if I replace that cable with the USB cable from the iPhone power adapter, it works fine.
  • Apps take a long time to load in general. A friend of mine who works for Apple says that the SMS and Contacts apps in particular can slow down when you have a lot of SMS messages (or Contacts). If you have a Mac, you can backup and clean out old SMS threads with SyPhone, but I’m not aware of an equivalent for Windows.
  • Contact list right-hand alphabet index scrollbar takes 5-10 seconds to start responding after contact app is loaded. I can understand that it takes a while to pull 1000-2000 contacts into memory, but still, ugh! Apple can do better.
  • Contact search input field should float as you scroll so it’s always visible.
  • There should be a preference to always allow Camera and Maps to use GPS location services, instead of prompting me all the time.

Good stuff

  • Appigo’s Todo app with built-in support for over-the-air sync with RTM. It’s not “push”/real-time sync, but the app is very well done, and the sync works well.
  • Pandora – free! rocking!
  • Tuner – streaming internet radio stations! Check out WSUM, WFMU, KALX, Little Radio…
  • Pandora & Tuner streaming over 3G, jacked into the car stereo!
  • Movies.app
  • Remote

Missing stuff

  • KeePass/KeePassX password manager. I switched from SplashID to KeePass a while back because KeePass has a much better UI, and also because SplashID has Windows & Linux versions that use the same database… I don’t really need the Linux feature, so I could switch back to SplashID, which does have an iPhone version ($9.99 in the App Store). I took another quick look at SplashID though, and the UI kindof bites, and I bet KeePass will come out on the iPhone before too long.
  • Notepad sync – so lame that this still doesn’t exist
  • Google Calendar sync. I was using NemusSync on my 2G phone, but an equivalent doesn’t yet exist for the 3G. A native Google sync app would be better.
  • Google Contacts sync. Something like Funambol might eventually work, but a native Google sync app would be better.
  • 1Shoot – best little one-function app ever!
  • uPoze – automatic Flickr uploading – I want this back!
  • jailbreak, of course – not quite out yet, but almost

I’ll update this post as I learn more

A while back (before I smashed up my iPhone), I had the idea that I wanted to change the stock “Answer/Decline” and “End Call” messages on my phone to something more creative. While there may be utils out there that enable this, but I figured, hey, it’s UNIX, those strings must be in files, and I can edit files.

iPhone ‘nix doesn’t have find built-in, but it does have grep -r, which allowed me to find out the two files I was looking for:

  • Most of the strings for the phone application (e.g. ANSWER, DECLINE) are in /System/Library/PrivateFrameworks/TelephonyUI.framework/English.lproj/General.strings (pre 2.x this was /System/Library/Frameworks/TelephonyUI.framework/English.lproj/General.strings)
  • In-call text strings (e.g. END_CALL) are in /Applications/MobilePhone.app/English.lproj/InCall.strings (pre 2.x this was /private/var/Applications/MobilePhone.app/English.lproj/InCall.strings)

iPhone strings files are stored on the device in a binary format known as “plist“. (Luckily the binary format retains enough text to allow you to grep for what you’re looking for). You can’t edit the plist format directly; there are two ways to deal with that.

  1. Copy the strings file to your PC and then use this online tool to convert the binary plist to ASCII text. Edit the resulting text file, and then copy the text file back onto the iPhone in the same place as the original binary file of the same name — the iPhone will read the text version of the file just fine.
  2. Install EricaUtilities (just search in Cydia), and and then use plutil to edit the strings files on the iPhone itself. Try stuff like this:
# plutil -key DECLINE -value "Zero" /System/Library/PrivateFrameworks/TelephonyUI.framework/English.lproj/General.strings
Setting property DECLINE to Zero
# plutil -key ANSWER -value "Hero" /System/Library/PrivateFrameworks/TelephonyUI.framework/English.lproj/General.strings
Setting property ANSWER to Hero
# plutil -key END_CALL -value "Terminate" /Applications/MobilePhone.app/English.lproj/InCall.strings 
Setting property END_CALL to Terminate
# plutil -key END_CALL_BIG_TITLE -value "Terminate" /Applications/MobilePhone.app/English.lproj/InCall.strings 
Setting property END_CALL_BIG_TITLE to Terminate
#
One final neat little trick is that if a friend of yours has a jailbroken iPhone with the default root password, and you're both on the same WiFi network, and you know his IP address, you can ssh to his phone and change his strings to whatever you like, all while you sit there at Cafe Ritual, sipping your coffee. You can even restart his phone remotely - just use the unix restart command.