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

WFMU radio

I’ve been trying to ditch Outlook for quite a while, and, thanks largely to NuevaSync, I finally got there. 

To recap, most PIM’s (including Outlook) do four main things: 

Mail - I switched to gMail long ago. I now use a Chrome Application Shortcut for regular use and IMAP access on the iPhone with the built-in Mail application for remote access. The recent enhancements to the keyboard shortcuts for labels pretty much cleared up my last PITA WRT the gmail web app. The only thing I miss about Thunderbird is the ability to open/compose more than one message at once, and the new multiple inboxes feature doesn’t really address this. 

Tasks - I use Remember The Milk (RTM) and a Chrome Application Shortcut for regular use on the PC. On the iPhone I started out with Appigo’s Todo but recently switched to RTM’s in-house iPhone app, which has over-the-air, real-time (but background) sync

Calendar - I’ve been using gCal on the PC for a long time now too, also now with a Chrome Application Shortcut. I use these to give my frequently-used apps their own windows (you’ve heard of the OS, still not quite yet defunct), and make it easy to switch betwen them using Alt-Tab. On the iPhone I use the native Calendar app. I had been using NuevaSync for real-time over-the-air sync, but as one would might have expectd, Google recently announced their own iPhone Calendar and Contacts syncronization service, which seems to have duplicated 95% of what NuevaSync offered overnight. The only missing feature that I can detect so far is support for multiple calendars, which is nice, but not a must-have. NuevaSync had also had a number of service hiccups recently which made me start to feel a bit less confident about the stability of the service. While I applaud the team at NuevaSync for keeping the faith, I doubt that they can keep ahead of Google’s developers on such a core feature. 

Update: It turns out that GCal-iPhone sync does support up to five calendars, but only your own primary calendar is enabled by default. I had to search around a bit to find out how to enable other calendars, but it’s easy enough: 

1. Complete Google’s instructions for setting up iPhone sync
2. Open Safari on your iPhone
3. Navigate to m.google.com
4. Select ‘Sync’
5. Select your device
6. Check the boxes next to the Calendars you want to sync (It will only let you choose 5 total)
7. Click ‘Save’ (you’ll probably have to wait a while for the additional calendars to sync to your phone).

Contacts - This was the last of the core PIM features that was keeping me on Outlook, since Apple built Outlook contacts sync into the iPhone OS from the start. However, there were a couple of major issues with this setup – no real-time OTA sync, and no remote (web) access to my contacts. The clear solution was to move to Google Contacts, but until recently there was no way to sync those to the iPhone without going through Outlook – clearly unacceptable. 

Although NuevaSync had offered contacts sync almost from the start, I wan’t ready to trust it right away. However, after a few months of using their calendar sync service, I turned on contact sync, and quickly left Outlook behind. Now that Google has their own iPhone sync service, I’ll probably be using that instead of NuevaSync. 

Aside from basic syncronization, I had been stuck on Outlook for two other reasons: getting contacts into and out of the PIM. Neither of these are as easy with Google Contacts as they were with Outlook and Anagram and a few AutoHotKey (AHK) hacks.

Inbound: With OTA sync, iPhone contacts and Google contacts are effectively a single application, single database, so I can add a new contact wherever I happen to be working. Easy enough on the iPhone with “Create new Contact”. On the PC, I use the same sort of feature in gMail — but in both cases the interface for adding further details to a contact is rather lacking. There is an Anagram iGoogle module, but since I don’t use iGoogle, this is sort of an extra step to gain a step, so I rarely use it. 

Search/Outbound: I have Google Contacts set up as yet another Chrome Application Shortcut, so I can just flip to it and search relatively easily — but why isn’t there a better Google Contacts app? Why aren’t there any keyboard shortcuts? Why are there no fields for birthday, URL, tags, etc? Why can’t I easily copy and paste contact details into an email message? I don’t have any doubt that Google is working on a more fully-featured Google Contacts app. 

Notes – Not a major issue, although it’s still a mystery why there is no simple sync for iPhone Notes. For now, I continue to use that as a standalone. I just tried NotesPro, but it only seems to “sync” from the iPhone to Google Docs, and not back again, which is very confusing. I guess I should look harder at EverNote

Lastly, to answer my own question, it appears that Microsoft Exchange somehow ended up as the equivalent of IMAP for contacts. Is there no open-source alternative? 

What can I say? I’m a bit of an iPhone klutz. I was taking it out of my jacket pocket and sort of caught my finger in the process, causing me to fling the phone onto the concrete garage floor. I feared the worst – picked it up and sure enough the screen was horribly fractured. Of course I immediately poked at it to see if it was still alive, and got a nasty little glass splinter for my eager finger.

Luckily I was able to backup the more badly damaged 3G and restore everything onto the older machine, which seems to work perfectly. Remarkable! Then I packed the busted-up 3G off to PDASmart.com for repair. I’ll update on how that goes when I get it back.

Side note: now that I’m temporarily back on my older 2G phone, I’m reminded how much better the battery life is… wow. And how much 3G sucks – so far at least, I’ve had to keep it turned off 100% of the time. All these 3G-related lawsuits are no surprise. 

Mail.app fix: Once I resored I was having a problem with Mail.app crashing every time I launched it. I found the fix – described here as a permissions problem, probably caused somehow by earlier hacking. Since I had un-jailbroken when I upgraded to 2.0.2, I had to use QuickPwn to re-jailbreak, install OpenSSH, and then I could connect and run chown -R mobile:mobile /private/var/mobile, which took care of the problem (no restart required). As a bonus, now I have both App Store and Cydia/Installer.

UPDATE: I got my 3G phone back from PDASmart.com in just a few days, and they did a great job with the repair. I think it was $130 and good as new… Funny, it seems that the iPhone screen repair info is gone from their site… Hmm.

Pulled down the 2.0.2 update yesterday. I’m out of my usual territory so I can’t yet tell what effect if any there will be back home, but here in Boulder CO I get “No Service” as soon as I switch 3G on, and full bars with 3G off.

Battery life does seem somewhat improved, even though it still sucks overall.

Still trying to get rid of Outlook entirely. Almost there.

Mail - gMail and IMAP access on the iPhone with the built-in Mail application.

Calendar - gCal on the PC and the iPhone Calendar app with real-time over-the-air sync via NuevaSync. NuevaSync seems to work pretty damn well.

Tasks - Remember The Milk (RTM) and Appigo’s Todo in the iPhone, which has over-the-air (but not real-time) sync. Would be great if this was RT, but in the meantime, it’s awesome.

Contacts - Outlook, with Anagram and a few AutoHotKey (AHK) hacks. The iPhone’s Contacts app sync’s to Outlook when I plug it in, which is often enough. But, since all my contacts are in Outlook, I can’t get to them remotely… For this, I do a once-in-a-while upload/sync of Outlook to Google Contacts. Clearly, it would be better to ditch Outlook entirely and just use gContacts itself, which NuevaSync will apparently sync to the iPhone as well. The main thing holding me back from this is that with Anagram and AHK I have one-key access to my contact database on the PC. Even if I give up Anagram for getting new contacts into the database, gContacts is lacking some major usability features – buried inside gMail w/ no direct access, no contact photos, no notes, no birthdays, etc. Alternatively, I could keep Outlook as the main database and UI, and use Kigoo to sync to gContacts (and NuevaSync to sync from there to the iPhone). Update: I managed to install Kigoo, but it just crashes Outlook. No surprise there.

Why is there no equivalent of IMAP for contacts???

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.

It’s easy…

  1. Make a short MP3 file by ’snipping’ out the section that you want to use as your ringtone. I use an old copy of TotalRecorder
  2. Convert the short MP3 to to AAC. You can do this in iTunes if you set your Preferences | General | Import Settings to AAC Encoder, add the short MP3 to your iTunes library, and then right-click on the MP3 and select Convert to AAC
  3. Use Get Info to find the .m4a file that iTunes creates (it puts them in silly places) and change the extension from .m4a to .m4r
  4. Copy the .m4r file into /Library/Ringtones on your iPhone using ssh/scp.
  5. If it’s not loud enough, you can use mpTrim to pump up the volume of the MP3 a bit and then re-encode, etc…

I found these basic instructions very helpful in figuring this out.

Using iTunes to convert to AAC is a bit of a pain — does anyone know of a good standalone MP3->AAC converter?

Update: notes here on how to do custom SMS tones and such…

I must be a haxx0r now. I managed to brick my iPhone yesterday after installing some stuff, so I had to restore it from scratch. Once it was restored, I jailbroke it again with ZiPhone, and went to install BSD & ssh again, but those apps aren’t listed anywhere in the package lists. I tried updating the URL of “Ste Packaging” (site) to http://repo.smxy.org/iphone-apps/ as detailed here, and also added http://ride4.org/shai.xml as a new source as noted here – that source links to a ton of other sources, and so I was hoping that it would make the BSD package available again.

No dice. No BSD package. It seems some others are having the same problem. What gives?

I found a couple of references to Cydia Package Manager and the “Fake BSD Subsystem”… Installed Cydia… And Mobileterminal… And I’m in. Nice.

One thing that really bugs about the basic Installer.app is that you have no way of knowing which category a package is in, so if someone says “install openssh”, you have to poke around through all the categories in the hopes of finding it. Cydia has a search button – awesome!

Now that (FBFW) I have an iPhone, I want to be able to use the nifty compact iPhone headset with my laptop PC (for Skype, etc) as well. It would seem that all I need is a little adapter with a female 3.5mm 3-contact iPhone jack on one end and the two separate 1/8″ headphone/mic male plugs on the other end. I found a similar adapter with a 2.5mm “mobile phone” socket on one end.

Others are looking, but nobody seems to have found one yet. Has anyone found what I’m looking for?

Update March 22, 2008

Sure enough, someone is now producing something close to what I want. Unfortunately, this is the reverse (PC headset -> iPhone) of what I’m looking for (iPhone headset -> PC), but it’s almost there. I bet another month or two and it will turn up.

Update September 2008

I found this 2.5mm Mobile Headset To PC Converter, and thought that would do the trick, but it turns out that the iPhone headset jack is 3.5mm, so this adapter can’t make the connection. 

iPhone headset to PC adapter - almost

I suppose that I could put yet another adapter like this one in line before it to bring it down to 2.5mm, but I’d prefer a single adapter that gets me all the way to the PC headset in one go. 

3.5mm to 2.5mm headset adapter

Update January 2009

Kevin wrote in point out this product, which appears to be exactly what I’m looking for. I’ve ordered a couple of them; I’ll post an update when I’ve tested it out. Thanks Kevin! 

Update February 2009

I am happy to report that this iPhone headset adapeter from ShowMeCables.com works perfectly, and is exactly what I was looking for. I probably should have gone ahead and had these manufactured myself, but, since I didn’t, thanks John!

img_0804 by you.

I’ve griped about how slow Firefox can get, especially when loaded down with my standard trio of GMail, GCal and RTM, plus a few other tabs. I was struggling with this again the other day and happened to come across this post referring to the Mozilla Prism project, which allows you to run individual web apps (like GMail, GCal and RTM) in a separate instance of Firefox, without all the browser “chrome” of menus and toolbars. Giving the app its own window restores these web apps (that have taken the place of traditional desktop apps) to primacy in the desktop UI navigation – you can use windows Alt-Tab application switching instead of mucking around with Firefox tabs. And as a massive side benefit, each Prism webapp is a separate instance of Firefox, which means that GMail runs 5x faster itself, and doesn’t slow down all my other browser sessions. There are a couple of issues (the GMail compose field stops working once in a while, the right-mouse menus are missing, links don’t open in ‘main’ browser session), but I love the idea, and it’s working well for me.

Followup after today’s MacWorld keynote: Interestingly (to some, I suppose), this desktop/web app issue is one of my little gripes with my new iPhone: I don’t really feel like I’m using all of what I paid for, since I’m using gMail, gCal and RTM instead of the built-in Mail, Calendar and Tasks (wait a second, is there no built-in tasks application?!?), and those don’t appear on the iPhone desktop, nor are they integrated with each other or the iPhone OS. Today’s iPhone 1.1.3 firmware update does for the iPhone more or less exactly what Prism does for Windows, letting you create desktop icons for bookmarked web apps. I still wish I could sync the calendar with gCal and the notes with something (anything!).