Showing posts with label pda. Show all posts
Showing posts with label pda. Show all posts

Friday, July 22, 2022

Getting Outlook to export Exchange contacts as vCards (vcf) with proper email addresses for use in macOS

In 2009 I wrote about how it was getting harder to move contact information out of Outlook into something else (like macOS Contacts). I wrote about some options, but that's not what I do now.

Here's what I do (tested in Mojave, which I'm still using because Aperture):

  1. Create a simple list Contacts view. I usually only want people so I sort by last name. In a few cases last name of people is blank so I fix that.
  2. Now create an empty email. Drag Contacts from Outlook's view into the email body. It has to be to the email, dragging to desktop creates a .msg file. It might fail if you do too many so I distribute 300-400 contacts across 4 separate emails. Outlook creates a vCard file as an attachment. It resolves the email too, so instead of an Outlook x400 (?) you get a proper email address.
  3. Send the email to your Mac
  4. On the Mac download all attachments. They show as VCF files and macOS renders them quite well.  If they have photos the photos show within the card icon. Spotlight indexes them all. You don't even need to bother with dropping them into Contacts (though that's easy to do, you can drop them into your Contacts Groups (folders)).
It's pretty easy if you know the trick. I've not seen it described anywhere else but I'm sure others know it.

Saturday, September 19, 2020

ToDo apps: Microsoft's solution

I've used Appigo's ToDo app for about 12 years (with Toodledo at first). It's had problems over the years, but in general it's been a good subscription choice. There's a fairly hard data lock (maybe SQLite?) but manual reentry is feasible albeit annoying.

Lately, however, ToDo has been more ragged. A recent server side change induced a date bug (time zone?) that in turn showed me I was using a macOS app last updated in 2016. It appears to have been abandoned on the Mac App Store. When I went to Twitter I found Appigo's account was closed years ago for violating TOS. Eventually I found I could download a current version of their other App Store app from their web site.

At the moment the app is more or less working again, though parts of the macOS app UI are kind of weird. I figure there was some violent ownership transition with lost dev passwords in Appigo's history (maybe they got ransomwared?).

I decided to go shopping again. I'm looking at:

  • Apple Reminders: hard data lock and I have to upgrade from Mojave to get to latest version (not happening).
  • Google Todo: this is one hell of a weird product. WTF is their web strategy? Tied to Gmail? Tied to Calendar? At least there's data export.
  • Things
  • OmniFocus: poor Omni is in some disarray ...
  • Microsoft To Do
Today I dug into Microsoft To Do. Of course it's a mess, but this is 2020 so we expect that. The mess starts with Microsoft reusing product names. To simplify a bit:
  • There are classic Outlook Tasks. I'll call these TasksClassic. TasksClassic was excellent in many ways, including, once upon a time, great import/export options and lots of view flexibility (I like to sort by last modified!). Unfortunately it's dead, just barely hanging on in the current desktop app with some degree of synchronization with the new product.
  • There's the new Wanderlist-based product variable called Microsoft To Do and ... Outlook Tasks (name reuse!). I'll call these TasksW for Wanderlist.
If you open the Help screen page for macOS TasksW (To Do) it takes one to a page on Outlook synchronization that's obsolete -- because the Outlook.com version of Tasks has switched from TasksClassic to TasksW. On the other hand the version of Office 365 on my Mac still has TasksClassic, and it does synchronize with TasksW as displayed on macOS and iOS Microsoft To Do.app.

Are you still with me?

This gave me a brief moment of hope that there was some data freedom here. I remember the import/export options of old Windows Outlook. Alas, the only import/export from macOS Outlook is Microsoft's PST format. There might be some way to do things with Outlook Windows or with 3rd party tools but I don't have the energy for that.

At this time I think TasksW is probably a decent enough product, but this has reminded me how screwed up Microsoft is. So I'm setting this one aside for the moment.

See also:

Tuesday, August 02, 2016

Simplenote is not dead -- and the joy of nvAlt backup

Simplenote.app, an Automattic product I use a zillion times a day, is less dead than I thought. They just released a version for Android, I installed on my ultra-cheap Moto e and in the blink of an eye my notes are there.

Before I did that experiment though, I made a backup.

I launched nvAlt and my local Mac folder of Simplenote RTF files was instantly updated. I then zipped up that folder — maybe 2MB. Stuck the zip in a folder of things like that. A record of the state of my extended memory on this day.

Only a geek can understand the warm glow I get from that special level of backup. The age old problem of Cloud backup (how do you recover a single mis-edited note from a month ago?) solved. (But will nvAlt work on Sierra? Brett Terpstra’s long delayed nvAlt replacement drops Simplenote support.)

Now if only Automatic would fix the #$!%%! broken search on (only) the Mac version. I confirmed search works on the new Android version.

See also

Tuesday, July 26, 2016

The sensible way to subscribe to a calendar feed in Apple's screwed up calendar ecosystem.

I think I know how Apple screwed this up. It’s one of those evolutionary path-dependency things. Their iCloud calendar is the child of their old OS X Server calendar (via MobileMe). They bolted a web service atop a server side model. In the old model the client was where different calendar sources were assembled, not the server. iCloud/web is stuck with that model.

So when it comes to Calendar feed subscription assembly happens on the Mac, or it happens on the iPhone. It doesn’t happen in iCloud/web. There’s no UI for adding a feed to iCloud/web because there’s no application model for that.

Which explains Apple’s bizarre instructions for getting a feed to iCloud to iPhone via the Mac. Whoever wrote that up was probably sobbing with despair. I suspect the resulting iCloud/web calendar only gets updated when the Mac updates itself. Let me know if I’m wrong.

I think there are really only two ways to do calendar feeds in the Apple world. One is to add the feed to the iOS device(s) (calendar.app) and the Mac (calendar.app) separately. Forget about seeing it in iCloud/web - that really doesn’t work.

The other is to do the subscription in a Google Calendar and subscribe to that on Mac or iPhone (and give up on iCloud/web). But then you’re going to have to deal with iOS failure to support Google’s CalDAV sync select. So this is a geek-only solution (It’s what my family does).

Here’s how to do it the simple way (iPhone and Mac only, not iCloud/web):

  • iPhone: Calendars:Add Account:Other:Add Subscribed.
  • Mac: I think you should ignore the iCloud option, but let me know if it updates without the Mac driving the update.

Tuesday, December 22, 2015

Calendar sharing between Google and iCloud is very confusing: webcal vs http vs. https

A book project forced me to dig into a perennially painful topic — Calendar sharing and subscription in iOS and OS X (MacOS Yosemite) for Google and Apple.

I discovered:

  • iCloud uses Webcal protocol links to share public calendars among iCloud users. Google can parse these, but it in my tests no events appeared. Old web pages say Apple blocks Google access to public iCloud calendars (robots.txt).
  • Google uses https links to an ICS file to share public calendars. Yosemite Calendar.app can use these links and iOS Calendar.app can use these URLs [1], but iCloud.com Calendar can’t. At least in my testing, with Yosemite, Calendar.app on MacOS and Calendar.app on iOS don’t share these calendar subscriptions.
  • Safari.app on iOS will pass an iCloud webcal URL link to Calendar.app and this will trigger a calendar subscription. Google ICS file (https) links won’t work, renaming them to webcal doesn’t work either (I think it might have in the past).
This confusing situation is reminiscent of the complex hoops required to support CalDAV sync for multiple Google Calendars in iOS and MacOS. Apple and Google have very different models for calendaring and they also appear to have different approaches to implementing CalDAV (and they’re probably on different CalDAV versions too).
 
On balance I much prefer Google’s approach to managing Calendars. On the other hand, if one stays entirely within iCloud and ignores Google calendar sharing, then Apple’s Calendars are simpler to use and understand and are better documented.
 
Don’t bother trying to share a public iCloud Calendar to the world, when Apple says “public” they really mean “iCloud”. If you do want to subscribe to a Google Calendar on your iPhone or MacOS, you will have to do it separately on every device you use (it my testing these subscriptions do not sync, I do hope they are backed up).
 
If you are sharing a Google Calendar, you’ll want to provide directions for iOS and MacOS users and you’ll need to explain that they won’t be able to see the calendar using iCloud.com.
 
Sample links used in my testing:
- fn -

[1] Documentation: Subscribe to a calendar. Go to Settings > Mail, Contacts, Calendars, then tap Add Account. Tap Other, then tap Add Subscribed Calendar. Enter the server and filename of the .ics file to subscribe to. You can also subscribe to an iCalendar (.ics) calendar published on the web, by tapping a link to the calendar. The second part of this documentation is incorrect, you can only subscribe for a webcal URL and only iCloud seems to produce the “right” ones.

See also (references)

Tuesday, September 08, 2015

Appigo ToDo task management suite: Archiving and Export of completed tasks and projects is non-negotiable requirement

Appigo has deferred work on archive and export of tasks and projects for at least two years and possibly longer. When I paid Toodledo to provide back end services I could live with ToDo.app’s missing features, but when I switched full time to ToDo for iOS and ToDo for Mac with ToDo Cloud support it became a real concern. I gradually realized Appigo wan’t showing any inclination to change.

I’ve tried one last ticket request:

[#85787] Archiving and Export of completed tasks and projects : Appigo Inc.

There are two closed discussions related to archiving of completed tasks and related request to export tasks and project data.

I know about setting sync to 1 year, I know ToDo web version will paginate completed tasks (up to 1 year?) and I know I can access tasks via SQLite (but dates are proprietary format).

I know I can sponge off Toodeldo and use them as an archive format without sending them any money (unethical).

I need more than that. I signed up for ToDo Cloud and I use both the iOS and Mac version intensively, including all Project features. I can't continue using ToDo Cloud if I can't have long term storage of project/task information as well as archive export.

It's just an essential requirement. If you can't tell us you're going to do this I need to find another product."

I have a feeling I know where this goes. So I’m looking again at Things an Omni, and it may be that I’ll reverse my shift and return to Toodledo.

Thursday, November 13, 2014

Force Chrome to remember iCloud password - how I ended up with LastPass

I don’t use iCloud for much - Apple’s cloud functionality is almost as lacking as its reliability. Our family has used Google Calendar for 7 years [1], I use Simplenote and nvAlt [3] as an information store, Gmail for email [4] and Toodledo/Todo.app for tasks. [5]

That leaves Contacts in Apple’s badlands — they’re too tightly coupled to iOS and OS X to readily migrate. So Contacts are the only bit of iCloud I use; I have to admit that they have been relatively reliable.

Hang on — this does get to the part about forcing Chrome to remember an iCloud password. But first I need a bit of setup. I have to explain something about corporate life and personal data.

Fifteen years ago many employees mixed their personal and corporate data on business laptops and workstations. It wasn’t unusual to use a single email for both work and personal use. Ever since then the two worlds have been dividing - driven by legal and security concerns. Even thumb drives are encrypted on insertion now; data on the increasingly locked down corporate laptop belongs to the corporation.

Which is fine for email and work documents - they should belong to my employer. Contacts though — they’re a problem. They don’t divide neatly between work and personal — and my work Contacts are pretty important for my future employment and family food. So, when it came time to decide where my Contacts should live, I moved them entirely into the personal sphere.

Which is why I need to use a corporate browser (Chrome [6]) to access iCloud — that’s where all of my Contacts live. I need ‘em when I work. 

Ok, so we’ve established I need to use Chrome to access iCloud. Now the problem — it makes me enter my password way too often. And my passwords aren’t easy to type or remember. There are extensions that once forced Chrome to store this password, but they don’t work any more.

So today I broke down. LastPass has a freemium model for online credential storage; the web app and Chrome extension are free. (LastPass charges for mobile services.) Unlike 1Password, which I use on iOS and OS X, there’s no need to buy a Windows client — and I don’t want to put all my credentials in the Cloud anyway. So I signed up for free LastPass, and created an account with a single stored credential - my iCloud ID and password.

It works fine. So one of my longstanding annoyances has been fixed — I can quickly bring up iCloud Contacts.

- fn - 

[1] Calendars 5.app is essential for the Google Calendar power user — we have it on every phone [2]. My native iOS Calendar syncs to my corporate calendar, Calendars 5 reads the iOS calendar database so it appears inline with my other 17 calendars, including 1 for each family member and one ‘all family’ calendar. Our family grandfathered into free Google Apps accounts, but if we didn’t I’d probably pay for the business service. Free has been nice though.

[2] It’s $7 a user. Since it’s not funded by in app purchases I believe iOS family sharing would allow one purchase to support five users. If it did use in app purchases that wouldn’t work. FWIW we still share a single Apple Store only AppleID, I use a different AppleID with iCloud.

[3] nvAlt is in maintenance mode for now — but so is Notational Velocity. Brett has a commercial replacement in the queue, as of today “it’s amazing and will probably be released”.

[4] Google’s broke Gmail usability with their last UI redo. I use Mail.app on iOS and sometimes Airmail on Mac, but mostly I gnash my teeth and weep and use Gmail.

[5] Nobody would do this by choice. Is a legacy choice.  Works and I hate to change things that work.

[6] The corporate standard is IE 9 — thanks to legacy apps. So IE for corporate apps, Chrome elsewhere.

Friday, November 15, 2013

Trello - an orientation review

[This post was first written in 2013 and then revised in April 2016.]

When Emily said she was interested in Trello, on a day when I was at home tending to a recovering child, I leapt at it. She's done a fantastic job with Google Calendar, but she'd never found a task/project app she liked. Indeed, she has a bit of an allergy to them. Trello, it turns out, has a certain arts and crafts following.

That's a bit surprising, as I know Trello as a corporate-focused project and work management tool from Joel Spolsky's geek-loved Fog Creek software. It never occurred to me that Emily might like it.

I've used a number of Task and Project tools myself; particularly a combination of Appigo's ToDo.app and the weirdly named ToodleDo web service [1], but Trello is a bit of an odd duck. So I put together these quick notes for myself - it's a geeky introduction to Trello.

Service properties and revenue model

Trello uses a freemium web model with Android and iOS apps. It is easy to cancel the service and it passed Gordon's Laws for Software and Service Acquisition. You can use Google authorization or a local account. Google access requests are Contacts only - which is plausible.

Revenue comes from corporate sales, corporate buyers pay $200/year for  admin tools, access restrictions, bulk JSON export, Google Apps org directory integration. Non-paying customers presumably encourage corporate adoption. They've added a $5/month option for "stickers" -- if they made this $20/year I'd pay just to support them. I worry about their revenue and longevity.

How Trello is put together

Cards are the equivalent of Tasks in Toodledo or ToDo.app and they are the essence of Trello. Not all of Trellow web features are available on the iOS app, but most are. Here's how Trello works:

  • Organization: A collection of Members and of Boards. Organizations are optional, you can ignore this.
  • Board: A named collection of Lists. Boards do not have dates but they are a good match for Projects especially if there's a collaborator. You need at least one Board.
    • type: individual or organization
    • membership (for org)
    • visibility: public/private for individual, for org is member only/org wide
  • List: A ranked collection of Cards. Lists do NOT have dates. You can move cards between lists. A typical use of a List is state tracking - To Do, Doing, Done. Can also use a List to hold notes, ideas, etc (but I'd use Simplenote for that).
  • Card: A task or, if you prefer, a lightweight project. Has a Name, a single Due Date/Time, Assigned person and... 
    • Description
    • Label - color icon (example, priority)
    • Checklists  - these items don’t have a due date or a responsible person.
    • Attachments - photo/video on iOS, on web can be Google Drive, Dropbox, Computer
    • Subscribe option
    • Comments (@ for autocomplete members)
    • Activity record (read only)
    • Links (can reference a card)
    • Card’s don’t have a done or completed attribute. That’s a problem (see below).

Lists, Cards and Boards can be copied, so you can set them up as a template. Lists enable bulk operations on cards such as archive all and move all. Cards and Lists can be moved within the hierarchy.

Trello has "Power-Ups" that do things like Display Cards in Calendar format. The Calendar works well and it allows drag and drop between dates. The Calendar is supposed to have a feed that can be subscribed to from Google Calendar, but it didn’t work when I tried it. [Update 2016.04: The Calendar feed works well now, I use it to integrate project work into Google Calendar.]

Comparison of Trello to a traditional Task app:

ToDo.app/ToodledoTrello
List/Project Board
Completed (Yes/No) List (state)
Task Card (but no done status [2])

Keyboard Shortcuts

  • D: card date picker
  • L#: Card Label (ex: urgent, etc)

Teams and Boards

If you’re using free Trello then you want to have a single Trello account for each Person — Trello.app for iOS doesn’t support identity switching. A Person (Trello account/profile) can be a member of multiple Teams. Each team can have multiple Boards, but a Board has only one Team. A single Trello account (Person) can be associated with multiple Google IDs.

So the relationship between a Person and a Board is controlled by their Team membership. In Trello web or iOS one changes Teams to see Boards that are Team specific. (This is more clear in the app than in the web version.)

Example of Trello Lists to organize Cards

These Lists resemble states in ToodleDo. I'd personally use Labels to indicate importance rather than create a List and the use of lists to reflect a schedule seems odd...

It's interesting that these two are using Lists to organize by Time instead of moving Cards around the Calendar or assigning Dates. Their organization can be summarized as:
  • Inbox: Cards that are new, not yet sorted
  • Scheduled/Active: Today, This Week, Later
  • Blocked/Waiting
  • Done (which is archived)
I’ve done Trello with a list for an Agile backlog and a list for each iteration of a release. I’ve also implemented it with a backlog, an active list and a ‘done’ list.
 
The one big problem with Trello - no Done status
I like products that strongly represent a coherent philosophy of a willful developer. The downside of these products is said dev can dig their heels in and stick with a dumb decision. That’s how I account for absence of a “Done” status for Cards.
 
Instead of “Done” you are supposed to Archive the card. That would be ok if the Archive were a special list in which Due Dates didn’t make Cards turn radioactive, but the Archive UI is buried away. You can’t see the course of a project if you use Archive. (See workarounds.)
 
If you don’t use Archive you can use “Done” list to hold completed Cards. Or you can keep them in place and use a Label or other attribute to indicate Done; but if you don’t remove the Due Date the Card will become radioactive when it’s post-due.
 
A lesser problem with Trello - no local backup, no export
At least in the free version you can’t create a local XML backup of a Board, and you can’t create any local archive store representing project history.
 
Impression
 
Emily has used Trello as a basic task manager. In April 2016 I started using it for my work and personal projects and I rewrote this review. I’m not satisfied with any project management tool I’ve seen, but Trello is my choice at this time. 
 
Trello is far less complex/powerful that RallyDev’s Rally project management tool. That’s not all bad though — Rally got very complex and hard to use over the years. Trello is a better tool for personal and small team projects. It doesn’t support assigning Card Checklist Items to individual persons, but that’s not a big issue. The user name can always be added to the checklist item.
 
I’d like to see an improved version of Trello that would be less costly than the business version. That version should fix the weird lack of a “Done” behavior and it should allow one to backup Boards locally and export a PDF archival record of Board content.
 
- fn -
[1] Nobody would combine those two — that was a historic accident. I later moved entirely to Appigo ToDo Cloud.app. ToDo Cloud has project management features that are almost good enough, but I ultimately decided to keep those for smaller mini-projects and use Trello instead. Appigo has a similar problem with archived/old tasks and longitudinal project records.

Saturday, February 16, 2013

Google Contact Sync on Mountain Lion and iOS - CardDAV (Project Contacts 2013)

I'm rather late to this party [6], but around the time Google ended ActiveSync support for unpaid accounts [1] they added vCard 3 (1998) based CardDAV support [3]. Up until then one could sync iOS and OS X mail and Calendars via IMAP and CalDAV, but Contact sync was only via Active Sync. [2]

TUAW has some details and Google's iOS CardDAV instructions are here.

As we all know, synchronization is hell. Even if Apple and Google actually used the same vCard spec (probably vCard 3, 1998), and even if they agreed on newline characters, they still have to deal with distinctions between their internal data models and vCard. Some of those data model gaps are non-computable. [5]. Even thought Google and Apple have similar 'Group' models that relationship metadata is ignored [8].

That said, at least CardDAV is relatively Apple friendly. Most importantly, this standard means, for the very first time I know of [7], there's a somewhat supported way to synchronize Contacts between Google and OS X Contacts and iOS contacts.

I've begun using it on Mountain Lion. Since I use Google two factor authentication I had to use one of their totally-defeats-the-purpose-giant-security-hole-not-single-use-god-i-hate-passwords-humans-are-losing-the-battle alternative passwords. There was some kind of transient authentication glitch but on a second try it worked. After a few minutes I had all 634 of my Google "My Contacts" on my Mac. Because of the long history of my Google/Apple Contact sync efforts (See Also, below) these largely duplicate my Address Book/iCloud contacts -- but Mountain Lion Contacts.app seems to merge the duplicates when I search [9].

This looks promising in a terrifying sort of way. You can drag and drop contacts between the iCloud and Google Contact lists; they'll be copied.

So what about Snow Leopard? Many fine machines run Snowie (and should not upgrade to Lion even if they theoretically can). They're (more or less) cut off from iCloud. Does CardDAV sync work with Google now? I wonder about adopting Hsiaio's technique, but so far the answer is no (same with Yahoo CardDAV). I didn't find much research on this question, but I suspect it's a combination of 10.6 bugs and SSL requirements. [9]. There is some limited Google Contacts sync on Snow Leopard that some still use.

- fn - lots

[1] Google grandfathered my half-dozen Google Apps accounts and recently extended the termination date for non-Apps users.

[2] Google says Google Apps accounts should use "Google Sync", which is their implementation of Microsoft's Exchange Server derived ActiveSync (with different bugs one assumes).

[3] vCard over HTTP/WebDAV. vCard has been Apple's Contact/Address Book export option for as long as I can recall, so it may be a good match to their Contact data model. CardDAV is also used by Apple's ancient Address Book Server. vCard 4 2011 has old-style and XML representations, but I suspect Apple, like Google, is more or less on 1998's vCard 3.

Google's vCard implementation has limits; worse the only partly implement the 1998 vCard 3 spec: "why did Google move the ADR extended address "Oak and Pine" into the street address component? And worse still, why did it separate the two using an '\r\n' (CRLF) sequence? The VCard 3.0 specification clearly states that CRLF must be escaped by the single escape sequence '\n', not by '\r\n'".[4]

[4] Reading the last line of [3], by the way, a penny dropped. Apple changed the way they handled CRLF and vCard between MobileMe and iCloud, with near-disastrous consequences for my OS X Contacts. By Darwin, I hate the ancient DOS/unix/mac line newline debacle.

[5] Meaning data loss is inevitable, transferring a Contact between systems won't return the original. Incidentally, under my TrueName, I've spent 15 years dealing with interoperability issues in healthcare - from HL7 to TermInfo to SNOMED/RxNORM and back again via cCCD and the like. If you understand why CardDAV is hard, then you have a glimmer of a smidgen of a hint of an idea why we don't have true interoperability between EpicCare and Cerner -- and why we won't for decades.

I think the people who trudge away on vCardX are heroic figures who should be carried upon our shoulders. Forget Ive, these people do the work I rely on.

[6] The marketing/interest problem is unsolved -- largely because of the spam/advertising counter-current. I'm very interested in productivity software and I follow a number of related feeds; but I still miss news like this.

[7] Check out "See also" - lots of history here.

[8] Looking at Apple's braindead implementation of iOS Contacts and Groups I'd pin this failure on Cupertino and Apple's corporate silos.

[9] A friend of mine has a 10.6 MacBook and needs to use Google's world (as do we all). I think the easiest way to manager her Contract migration will be to get them to iOS/Google and then use Gmail web on Mac. I may put them on an account on my ML machine to help with cleanup.

[9] So which gets edited when one clicks "Edit" in Mac Contacts.app? Don't ask those questions. OS X doesn't say.

See also - via Gordon's Tech

Yeah, I've been fighting this war a long time. February 2009, almost exactly 4 years ago, was a big series of battles, but the 2008 PalmOS to iOS migration was probably the worst (later there were tools). I've read recently that Apple is an intensely siloed company -- that explains why iOS and OS X contract integration is so very bad.

Tuesday, September 18, 2012

How long has it been possible to assign iOS calendar colors for Google Calendars?

Our family uses a (free) Google Apps domain to manage our email, calendars, contacts, documents and so on.

For years we've used Google's little known m.google.com configuration to sync multiple calendars to each device (English only). So we all see the Family Calendar, we see our own calendars, I see Emily's calendar, etc. Including various sports teams and organizations we often interact with 10-25 calendars.

It works surprisingly well; certainly better than iCloud/iCal. Except for one really annoying limitation -- color assignment is absurd. I run into color collisions pretty often and I can't fix the OS assigned colors.

I've complained about the problem quite often. I figured there was no chance of a fix.

Wrong.

Today I had to reconfigure my son's phone after unlocking it, and I noticed something weird. There's an Edit button and it lets me assign colors to individual Google Calendars. 

Calendar

Click Edit, and I get a screen where I can assign colors.

Ooookaaayy, so I'm demented. I knew that. But I have a screen shot from 7/2011 and there's no Edit button there:

 Calendars

So when did the Edit button appear? I'm on iOS 5, not iOS 6.

Well, once I realized what had changed, I learned it came with iOS 5 last October. One friggin' year ago: "Another new option allows you to change the pastel colors of your calendar(s); you can’t pick colors willy-nilly, but you may choose among seven lovely hues."

I knew the calendar had changed; I'd spotted the week view on my own and I knew of the other changes. I just didn't notice the calendar creation/color option (you can't add calendars for Google ActiveSync, but you can for Exchange sync).

So Apple quietly fixed one of my multi-year complaints about iOS. Too quietly.

Am I the only guy that totally missed this? What else have I missed? How come nobody was shouting this fix from the rooftops?

See also:

Sunday, October 02, 2011

Email to Task: Remember the Milk gets it wrong, Appigo and Toodledo do it right

I use Toodledo's task service every day; sometimes through Appigo's ToDo.app, sometimes through their web interface. I'm a customer, but not a fan. I need Toodledo to add full text search with the web UI, a feature that ToDo.app has provided since day one. I've been asking for it for years, but it's only recently that Toodledo told me they have something in the works.

Toodledo does have one killer feature. I BCC my toodledo mail-to address when I send email with an important f/u task and toodledo creates a task with the subject line as the task name. I use this all the time. It's the analog of Outlook's ability to create a task by dragging and dropping an email, note or Calendar item to the task icon. (Surprise! Bet you didn't know Outlook did that.)

Since I'm no fan of Toodledo I considered setting up Emily with their primary competitor -- Remember the Milk. First thing I did was evaluate Services / Remember The Milk for Email.

They got it totally wrong. Their primary use case is not task creation, it's importing tasks en masse. Every line in the email becomes a task, including the email sig. At a high level they support "emailing tasks", but it's completely useless for my purpose.

Sigh. If I were wealthy, I'd build a task/web app that works.

In the meantime, I'm evaluating toodledo's web app. It's supposed to do search, but did they make the same mistake they made with their online service?

Update: Stop the presses. Appigo's own cloud service, which I've never take seriously, supports Creatings tasks via email, and they do it right:

When an email is sent to Todo Online, the subject line becomes your task's title/name and the body of the email will become your task's note.

Except it's not working. I created the mailto address for Emily but the emails aren't turning into tasks. I'll give it a bit more time before I open a trouble ticket. Opening a trouble ticket, of course, is a great way to evaluate a service.

Another bad sign. There's no "Help" or "Support" link in the Appigo Todo Online UI.

Update 2: The task to email problem was a 'confirmation message filtered into spam folder' problem. The bounces were going to Emily's email so i missed them. On the other hand, this is a good way to test a service. When I tried to cancel my ticket I got "Fatal error: Call to undefined function mcrypt_get_iv_size() in /var/www/kayako/includes/functions.php on line 3434".

They are missing Help and Support links in their Todo Online UI.

Update 10/7/11: Appigo's mail-in support requires authentication of the sending email address; users can have only one sending service email. Toodledo lets any address work. Appigo's support network seems to have been down for two days. Lastly, the more I see the absence of a help or documentation link on the online service they less I feel they are a real company. I am also, somewhat laggardly, realizing that Appigo has NO data export service at all.

Update 10/7/11b: I switched Emily back to Toodledo. She is continuing, for now, to use the Appigo Todo.app. It only took a minute to make the switch; there were a few duplicate tasks to delete. Emailing a task now works as it should. FWIW this is a free feature with Toodledo, but a Pro feature with Todo online.  I miss full text search; I'm back to waiting for Toodledo to enable this. In the end though the functionality, the mailto implementation, and data freedom brought me back. We'll get the Pro account if it works for Emily.

Saturday, October 01, 2011

Tinderbox, Simplenote, MindNode and data freedom

I really think Tinderbox ($250!) should have said something about this earlier ...

Tinderbox: The Tool For Notes

.... Tinderbox shares notes with with Simplenote for Web and iPhone access...

The big (Big) problem with apps like Tinderbox, Evernote, or MindManager and its kin is data freedom. Specifically, the absence of data freedom. There's no standard for the representation of attributes and relationships in a nodes and arcs graph app -- it's a fundamental knowledge representation problem [1][2]. Years of rich data get flushed away when an app dies.

When, not if. All software dies. Ask Lotus Agenda users. Or the users of, and this is far from a complete list, Ecco Professional, InfoCentral, PackRat, Sidekick, Arrange (Common Knowledge - MacOS), InfoDepot, In Control, Cross-Ties, Palm Notes, Commence, Ascend, Arcadia (OS/2!), GrandView and MORE, Inspiration, Outlook Notes, and so manymany, many more.

Assyrian clay tablets from the library of Ashurbanipal have endured for thousands of years, my GrandView notes didn't do so well.

Data can outlive software -- but only if it's portable. Not forever of course, but maybe until the end of civilization [3]. JPEG images are in the running, video not so much. UTF-8 text files are serious contenders.

The SimpleNote ecosystem is based on UTF-8 text and RTF files with optional markdown formatting. That's why I like it - the core data store can endure. It's accessible from iOS device, OS X, XP, W7, Dropbox [4] web -- everywhere.

Still, notes alone, even with tagging and search, are not enough. I want a way to layer arcs upon the text nodes.

I could almost do it using MindNode Pro. I could attach SimpleNote notes to MindNode nodes and keep both MindNode file and SimpleNote files on Dropbox. Problem is, it's awkward to attach and create files to MN nodes. The icons are too large and the node doesn't inherit the file name -- and I need a keyboard shortcut to create an external text file on demand.

Screen shot 2011 10 01 at 9 57 41 AM

Doesn't that text icon seem a bit big to you? It can be resized, but it always defaults to enormous.

I haven't given up hope that Markus Muller will accept my suggestions, but I'm reluctantly leaving MindNode Pro on the shelf while I watch where he goes with it.

Tinderbox though -- if it could actually use SimpleNote ... and if it could become Dropbox compatible ... and if I'm careful about how I manage and distribute Tinderbox specific metadata ... That's interesting. It's a heck of a lot of money though, and I fear using its full power would put me into deep data lock.

See also:

Update: MaysonicWrites points us to Dave Winer's World Outline project, I think as an example of a liberated data solution to managing some kinds of information.

- fn -

[1] Consider HL7 RIM 3 and the challenges of CDA/SNOMED model integration. Ok, so nobody knows what I mean by that. Trust me, it's relevant.
[2] Ok. There is a standard. It's called the hyperlink and HTML. This post is long enough, but I'm tempted to look for late 1990s book on hypertext I have somewhere, and to summon a BYTE article on a hypertext version of Gopher from the 1990s. I suppose software archeology is a hobby now. I am disappointed that we don't have wiki-like personal information tool that uses HTML/RTF/text and hyperlink as the information store, WordPress API as an authoring option, and the ability to migrate the repository from local drive to cloud.
[3] Outrageous you say! What could last that long? Well, yes.
[4] I'm a late adopter, but increasingly a fan.

Friday, September 30, 2011

Consolidating Contacts: From Outlook to Address Book via MobileMe and the 5th Circle

This option is, for now, only open to the few people who have MobileMe accounts. Maybe iCloud will add something like this. I'll pass it on for the record.

The time had come to consolidate my work and personal contacts. No, I'm not changing jobs. A change in work policy meant I could no longer sync my iPhone to Exchange. I need my work contacts on my iPhone to do my job, so I needed to consolidate.

This is what I did. I bit imperfect perhaps, but it was reasonably fast.

  1. Using Outlook 2007 at work I copied all my Contacts to a PST file. That copy action makes Outlook resolve Exchange format email into standard email format. Took the PST home.
  2. Use Address Book export to save an archive. Turned off MobileMe sync on all machines. Put iPhone into Airport mode.
  3. Started up my VMWare Fusion XP with Outlook 2007 standalone. Using MobileMe on XP I did a sync to MobileMe.
  4. In Outlook 2007 standalone I imported the PST file Contacts (1012 items) from the external PST file into a new subfolder of Contacts. I then did another sync to MobileMe.
  5. Switched to OS X then turned MobileMe sync back on. It said there were 1007 (not 1012) items to install. When it was done, there 1002 "cards" in a new "Group"

Note that, at face value, I lost 10 contacts during the import process. However, Outlook still showed 1012 even after I repeated a sync there. It's mostly likely 10 contacts won't sync, but it's also possible Address Book does some kind of duplicate merging on import -- but doesn't add the correct recreate Group-Name relationship.

I then ran Contacts Cleaner from Spanning Tools (App Store, cheap). It found 635 "conflicts" (issues, really), of which a surprisingly small number were duplicates. I set to work cleaning that up (Contacts Cleaner has an annoying habit of flagging academic suffixes as "bad".

After an initial cleanup I went back and forth between OS X and XP/VM, each time repeating a sync then running Contacts Cleaner. It only took a few minutes to find problems and settle things down.

Some data is lost of course. Sync must have its price. I made liberal use of 'Categories' (now we'd call these 'tags') to slice and dice my Outlook Contacts. They are all gone now. That is sad.

On the other hand, OS X allows a Contact to be associated with more than one Group. I can make use of that. It's too bad MobileMe Sync didn't try to turn Categories/tags into Groups. (And too bad you can't edit group assignments on an iOS device!)

There was only one funny thing. I've seen this once before. I created a Smart Group for all Cards that had no Group assignment. Over 1,000 showed up unexpectedly. I quit and restarted and all was well. It's a good idea to quit and restart Address Book after a large update.

Once I had things sorted out between my XP and OS X sources I turned on my iPhone and let it reconcile to the new addresses. I found some oddities on searching while Spotlight sorted out the additions.

The iPhone sync added more duplicates! Yes, Synchronization is Hell. I'd almost be disappointed if it weren't.

Back to Contact Cleaner again and I returned to 1805 total contacts. Even so, I readily found a contact that wouldn't sync to my iPhone. I made another backup of my Address Book.

So I turned off MobileMe Contacts sync. That should have removed all Contacts from my phone, but quite a few remained. I had to remove my MobileMe accounts and add it back. Yes, even though we've yet to develop artificial sentience, we have developed artificial dementia.

All were back on my iphone, but we were back to 1043. Clearly, we had a problem. I removed more duplicates but ended up with only 1804. So I restored from backup.

I was in the 5th circle of sync hell, but I've been here before. Call me Dante. I used advanced MobileMe sync to forcibly replace everything on MobileMe with what I had on my home server. I confirmed MobileMe had 1805 contacts, then reenabled Contact sync on my iPhone. Then I forced sync from MobileMe to my other two Macs. At last all showed 1805 contacts [1].

For now. Synchronization is Hell. I don't think iCloud will be any better. In fact, I expect it to be worse.

[1] I'd written previously that Address Book for Lion didn't show a count of cards. It does; you have to scroll to the very bottom of the address (card) list to see it.

Tuesday, December 28, 2010

There are no great task managers for the iPhone - but there's hope for 2011

I'm surprised by the conclusion of my recent survey [3] of iPhone/OS X/Web task management solutions. There are still no great task managers for the iPhone.

Neither Things, nor Appigo's ToDo.app (which I have used incessantly since 2008), nor OmniFocus, nor Remember the Milk.app nor Toodledo.app are a great solution. They all fall short. None of them are the equal of the venerable, simple minded, task manager that came with the PalmOS in 1994 and was improved with integration into DateBk in the late 1990s.

You may wonder why I condemn all of our current options. I'll start by listing the base requirements.

  1. Simple enough for a non-geek to use with at least basic task attributes (due date, priority, task name, description, category [1]) and views (filters, sorts).
  2. Data freedom: import/export capabilities for all tasks.
  3. Synchronization to a desktop or web version that matches the "data model" of the iPhone version and has the same usability standards. [2]
  4. Affordable (total solution costs < $50)
  5. Calendar integration, even if that's only an "agenda" type view of tasks and dates.
  6. Search across all "fields" (attributes).
  7. Utter, absolute reliability.
  8. Instant on, no delays in task entry.
  9. Archiving of completed tasks.
  10. Local iPhone app with synchronizatio -- not dependent on a data connection to work.

Sounds easy, doesn't it?  Palm did most of this fifteen years ago, and Pimlico's DateBk delivered the complete package (and more) over ten years ago. Must be easy [4]...

Evidently not. Nobody does it for the iPhone today. Let me name the failures ...

  1. OmniFocus is too expensive ($100 for iPhone/desktop pair) and is too complex. At a lower price point though I'd seriously consider them despite the complex. I'm an Omni Group fan.
  2. Things has reliability issues, is too expensive and doesn't support data freedom. Their iTunes ratings continue to decline.
  3. Appigo's ToDo.app doesn't have a robust and reliable web or desktop solution and lacks data freedom. The best option is to sync with Toodledo's web app, but that app has a different data model than ToDo.app. This is what I use every day however.
  4. Toodledo's own iPhone/web solution is limited by their complex (and, sadly, ugly) web app. The web app search is field specific and so almost useless.
  5. Remember the Milk has a bad reputation as a business partner, their iTunes ratings are poor (?reliability), they are relatively costly at $25/year, and there's no data freedom. (Corrected from original - see comments.)

It's a sad situation. The best option is still the combination of Appigo's ToDo.app and Toodledo's web service; I pay for both. I do, however, grit my teeth every time I use Toodledo's web client, especially if I need to search for something.

I'm hopeful we'll see a fix in 2011. There are at least three ways the logjam could break.

Apple's OS X app store could reenergize the flagging OS X desktop, and new desktop products might appear at better price points. If Apple were to provide OS X App Store developers with a standard way to synchronize to iOS devices I'd expect a great solution. Alternatively,  Apple could forget it hates its customers, and finally put a bullet through iCal (sadly, will require 10.7). Lastly, and least likely, Jobs might decide he doesn't totally hate task managers after all.

Google might finally provide an API for Google Tasks, allowing iOS client development. Or they might provide HTML 5 (Gears-like) offline Google Tasks web app with synchronization support for Safari. [6]

Lastly, the Omni Group could create a "lite" version of OmniFocus for the App Store and sell both an iPhone and desktop OmniFocus Lite for under $50.  Or some other current vendor will fill out an existing solution.

If we assume an average probability of each of these outcomes of 50%, there's an almost 90% probability [5] we'll get finally get a great iPhone task management solution next year.

I'll raise a beer when it happens.

See also (mostly not about tasks, but all about PIM functions and the amazingly hard Palm to iPhone migration)

- fn -

[1] The big "breakthrough" change to the Palm ToDo (task) list was the radical addition of up to 16 categories. For quite some time Palm tasks lacked "categories" (single tag). The original Palm design team were even more radical minimalists than Apple's modern iPhone OS team.
[2] This is huge. If data models don't match perfectly non-geeks, and even geeks, will eventually be frustrated -- even if they don't understand why they are frustrated.
[3] Looking for a good solution for Emily, and deciding none existed.
[4] I'm being sarcastic of course. One of the hardest things in software development is deciding what to omit. It's the old line about sculpture - great art consists of removing the inessential.
[5] 1 - (1/2*1/2*/2) = 7/8
[6] More likely now that the Google/Apple war is over.

Thursday, October 14, 2010

MobileMe vs. Google Calendars

MobileMe Calendar now supports public read-only sharing using the webcal (.ics) format. There's no public display as an HTML page.

MobileMe users can be invited to view and edit a calendar.

There is no support for subscribing to a non-MobileMe calendar. There is a mechanism for importing from Outlook or (bizarrely) iCal. It's not documented, but I believe Outlook import requires installing some Apple software (iTunes?) and I am pretty sure it won't work with an Exchange based calendar.

It seems users can't share on both MobileMe and publicly! If you make a calendar public you lose the miniscule sharing icon to the right of the calendar name. Weird.

There's some iCal integration, but, judging from a flurry of tech notes, there are lots of bugs. I suspect Apple wants pre-10.7 users to use the web UI and forget iCal. I assume MobileMe Calendar has good iOS calendar integration, but there's no iOS support for editing calendar-associated tasks.

Overall, I'd give Apple a C+ for this effort. If they were to add subscription they'd graduate to B-. The significant advantage over Google Calendars is simplicity and, of course, a far more pleasant UI. The disadvantages are substantial -- no subscription, no web publication, no embedding, etc etc.

Update 10/16: See comments for additional drawbacks. There have also been recent posts from vendors that used to be able to synchronize transactions with MobileMe calendars -- Apple has removed functionality they relied on ...

  • Daylite: ... In the process of moving to the new calendar, Apple migrates your existing calendar and deletes the old calendar. In the process of deleting the old calendar, sync services propagates the delete to all sync services clients. Daylite obeys these delete commands (as it should) and moves your calendar data to the trash (lucky we have a trash).

    We've communicated with Apple during the MobileMe Calendar beta and we are looking into possible solutions.
  • Spanning Sync and the New MobileMe Calendars (Spanning Sync Blog): ... Spanning Sync can sync the new MobileMe calendars to Google, but changes made in Google won't show up on your MobileMe calendars. Unfortunately, Apple specifically disallows syncing of the new calendar format (called CalDAV) using its Sync Services architecture, which Spanning Sync is based on. Spanning Sync can read from MobileMe calendars so "one-way sync" is possible, but making changes to them is currently impossible... we're hopeful that Google will enhance Google Calendar so that it can sync directly with MobileMe without any intervening software. Google is tracking the request for this feature here ...
I imagine Daylite couldn't warn customers due to their beta agreement, but since Apple ignored their concerns their customers have been screwed. Spanning Sync suggests customers revert to the old format.

Apple is not a "nice" partner or vendor, but we already knew that. They are not the best of all worlds, only the best of our world.

I grumpily added my bit to the Google feature request list, though, in truth, I don't use MobileMe because I know Apple won't deliver what I need. I'm not their customer.

The only upside to this story is that MobileMe is using CalDAV, so there's a potential for a better future. I bet OS X desktop support will require 10.7 though, and that OS won't be safe for my use until early 2012.

There's been rumor of a rapprochement between Google and Apple. I hope that's true, because for geeks like me the best solution is combine the best bits of Google with the best bits of Apple (not including MobileMe).

Sunday, August 22, 2010

iPhone's very annoying calendar color limitation

There are three features of the iPhone Calendar that prove Apple is not made of geniuses ...
  1. The maximum alert time is 2 days. Sidekick for DOS 2.1 had longer alert times. If I could kick some engineer's butt for every birthday card I've sent late ....
  2. iOS can't handle birthdays for anyone over 77. Let's see - my parents, my aunts ...
  3. Calendar colors are assigned per server, not per phone. So my Family Calendar (ActiveSync via Google) and my Corporate Calendar (ActiveSync Corporate) are both assigned the color red [1]. I can't tell them apart visually.
Not only are these stupid blunders, they've been stupid blunders for over a year.

No, Apple is not made up of geniuses. Neither is Google. Both companies have lots of limitations.

[1] Quick tip: Calendar color fix for iPhone and iPod touch
... Calendar on the iPhone will assign colors in a certain order for your first five calendars: red, orange, blue, green, and purple. Afterward, any more calendars are assigned a random color out of those five. To manipulate this, use iTunes to sync only selected calendars in the “Info” tab. First sync the one that you want to be red, then sync again including your second calendar that you want to be orange, and so forth. You can create extra calendars to use to “skip” a color if you wish, then delete later at your leisure...

Wednesday, August 04, 2010

iOS 3 bug with recurring Exchange meetings changed in iOS 4.

Apple just can't manage to get this one right. I tested an old iOS Exchange Server calendaring bug with Outlook 2007 and Exchange 2007.

In iOS 3 if you declined an instance of a recurring meeting you removed all the meetings from your calendar.

In iOS 4 if you decline an instance of a recurring meeting you remove it from your iPhone calendar (good) but not from your Outlook calendar (very bad).

Fail.

Deep sigh. Apple does not deserve its reputation for "quality". Design yes, quality no.

I'll retest with iOS 4.1 when it's out.

Saturday, July 31, 2010

Migrating Notes from ToodleDo to ResophNotes and the Simplenote ecosystem

[Shortly after I first wrote this, C.Y. released ResophNotes 1.0.5. Among other things, such as the ability to store notes as indexable .txt files, it has direct support for importing ToodleDo’s CSV file. He’d told me the release was coming soon, I did it my way just for geek fun. I’ve therefore moved the details of what I did to a footnote. BTW, turns out C.Y., like me, migrated to Simplenote from Toodledo/Appigo!]

Once I'd rescued my memory fragments from Outlook 2007 my next goal was to unify them from the former Palm Memos I'd (painfully) migrated to ToodleDo and thus Appigo's Notebook.app.

I've been reasonably happy with the combination of ToodleDo and Appigo, but notes are very much a 2nd class citizen on ToodleDo (they're all about tasks) and their search tools are pretty weak. I also wanted to be able to access and work with my notes from my desktop on Windows and the Mac, to be able to back them up, to have them be exposed to Spotlight search on OS X, to integrate my old corporate Outlook Notes with my old personal former Palm Memos and to have at least one open source repository in the mix. I needed the notes to live in a standard file format (UTF-8 text or RTF) free of all data lock.

Sounds like a lot, but the combination of ResophNotes (XP and higher - free but do donate), Simplenote (Cloud, ad-supported or $9/year - I paid - see documentation), Simplenote.app (iPhone and iPad app, free) and Notational Velocity (open source, OS X - documentation) gave me everything I wanted -- plus Chrome extensions for editing.

There was only one thing standing in my way. How could I get my ToodleDo notes into Simplenote?

I knew that ResophNotes (Win) would import Outlook's peculiar CSV files (embedded paragraphs!), but the developer, C.Y. I still days away from releasing a more general CSV import feature. I was impatient, so this is what I did. (see footnote [1])

During my early import experiments, because I used a Mac for part of the process, I ran into character encoding problems. Since ResophNotes doesn't yet have note multiselect and delete [2] I had to find its database and delete it.

ResophNotes exports and imports .RSN files (yay! backup!), but that's not how it works with notes. I found them in "C:\Documents and Settings\jfaughnan" in a .ResophNotes folder (hidden). To delete them and start over you have to quit ResophNotes, then find the instance in Task Manager Processes and kill it, then you can delete the files.

That let me start over again.

BTW, here's how the notes look in Notational Velocity's "Notational Notes" store:


Yes, each note a separate Rich Text file (I may convert to safer plain text) -- all Spotlight indexed.

Just in time for my birthday.

Nerdvana.

[1] Now that ResophNotes has direct ToodleDo import, I’ll include this as a reference for how one might support CSV variants other than ToodleDo or Outlook. My procedure was especially weird because I happened to have a Mac at hand…

  1. Use ToodleDo's Notes CSV export to my Mac.
  2. Import into FileMaker and use Calculation field to merge the ToodleDo Title and Notes into an Outlook style "Note Body". I next renamed the ToodleDo "Folder" column to Category.
  3. Created FileMaker columns to match Outlook's names, and exported as CSV. I had to paste this string in as the first row: "Note Body","Categories","Note Color","Priority","Sensitivity". I left all values except Note Body and Category null. In retrospect I should have appended "Categories" as a string to the end of "Note Body" to facilitate search.
  4. I used TextWrangler to clean up some character encoding CR/LF issues. This was only necessary because I got a Mac in the mix. Curse that ancient CR/LF screwup. It seems to have survived into the world of UTF-8 encoding.
  5. I fired up my Fusion VM (way better than it first was on 10.6) and my old XP image and moved the file over. I opened it in Word and saved as UTF-8 to remove any residual character encoding issues.
  6. I imported into ResophNotes. When I was sure all was well, I synchronized ResophNotes with Simplenotes and all my notes merged into one lovely repository. I fired up Notational Velocity in another window and confirmed all was fine there as well.

[2] Since the latest version can store as .txt files, I assume one could just delete all the .txt files! I haven’t tried this tough.

Thursday, July 29, 2010

The multi-iPhone family - two approaches

What's the best way to manage multiple iPhones in a single family?

There are at least two broad approaches, and combinations of them. We've tried 'em all. At the moment we manage 3 iPhones (parents and one child) and 1 iTouch as well as several iPods.

I'll share our experiences here.

Apple's preference is for every family member to have at least a separate OS X user account, if not a separate computer. Each person should have a companion MobileMe that manages synchronization across multiple machines. Apple would probably prefer that each family member have their own iTunes (.mac) account for media purchases, so DRMd material would only play on one device.

This approach does have advantages, but there are obvious disadvantages. It's an expensive and complex approach with a lot of management needs and there are issues with sharing apps and movies.

We've used a variant of the "Apple approach" with two user accounts on one machine, and all purchases through a single iTunes account (mine). One account owns iTunes and apps, the second subscribes to App updates through "family sharing" [1]. This does enable each account to have its own Address Book and it aligns well with using MobileMe on phone and multiple OS X machines.

This "classic" multi-user approach blows up completely when you add Parental Controls. Among other problems, MobileMe is violently incompatible with Parental Controls. I wasted hours trying to make it work before I retreated to a much simpler Google approach.

The Google Approach [2] is relatively painless. I use it with my son's iPhone. I sync it in my user account for media access and app installation, but I use Google Sync (Exchange server/ActiveSync) against his account on our family Google Apps domain for the phone's email, contacts and calendar. He could access the Google Calendar and Mail through a Parental Controlled account using OS Mail and iCal but in practice he just uses his phone [3].

There are some downsides since iTunes is designed for a single user with a single set of "last played" values and ratings, but in practice the confusion is modest and the pain reduction is immense. It's also much cheaper than the "Apple approach".

So, going forward, we're making less use of the OS X desktop, more use of Google (alternative is MobileMe) cloud services. This gets around the sharing/identity problems of iPhone synchronization.
--
[1] We go through some geeky maneuvers so that my wife can have full access to all media from her user account without replicating files. See links below for tips. In short; set iTunes to not import, then media library into client iTunes. Incredibly iTunes creates links to media.

[2] You can do this with MobileMe on the iPhone and the MobileMe web interface, but without the Parental Controls-incompatible desktop you lose a lot of the value of MM. For various reasons we've gone the Google approach.

[3] Google web browser access is (yet again) OS X Parental Control hell. You can't enable web access to a Google Apps domain without enabling access to Google search.

See also:

Gordon’s idiosyncratic revenue-free iPhone 4 and iOS 4 review

For geeks like you and I, the iPhone 4 is annoying. We’d have been much happier with an enhanced 3GS with more memory, more processing efficiency, a better display, iOS4, better antenna design, less case cracking and built-in bumpers.

Alas, Apple gave us a pretty phone.

The antenna problem is an annoyance, but even without a case it’s not bad if I minimize skin contact and hold the top of the phone. If I’m ever able to find a case, I doubt I’ll give it another thought. I haven’t yet run into problems with the facial sensor – I guess my face and the way I hold the phone fits Apple’s design.

The real problem is the damned phone is too fragile. It feels fragile, it looks fragile, and half the geeks I read are showing broken screens. It doesn’t need a case, it needs a nursing home. If it were possible to find a case I’d have one now. Do not buy an iPhone until you can buy it with a case.

In fact, if you don't need an iPhone right now, wait until October. By then iOS 4.1 will be out and many of the worst bugs will be resolved.

In fast-to-read-and-write bullet form, here are the rest of my impressions.

Updating

I took the very conservative root of treating my iPhone 4 as a completely new device and gradually moving things over. This minimizes bug problems, but at a minimum you will lose:
  • all application specific data and configuration
  • all saved account credentials
  • all phone Favorites
  • SMS/MMS messages
  • Notes (may be available on desktop if sync)
  • 1Password and like files
If I were to do it again I'd probably do the standard update from the existing phone.

I ran into some glitches with
  • 3G data service access was initially missing. I had to shutdown, restart and wait a while.
  • Voice mail wanted my voicemail password (PIN really).
Phone (hardware)
  • The SIM card removal tool is not included in the US (it is in the UK)
  • Facetime: I don’t have time to play with it. It will only be interesting when/if there’s a desktop client.
  • Battery: I’m not big changes over my old 3G. I suspect Push sync is a huge battery killer, and I’m currently synchronizing Calendar and Contacts with a corporate ActiveSync server, Google’s ActiveSync server, and Apple’s MobileMe services.
  • Face sensor: It works for me but I usually use the headphones so I might not notice a big problem.
  • Antenna: If I touch the "dead zone" I drop the call. Elsewhere it's ok. Apple should stop pretending other phones have this problem. It's a genuine design flaw. I'm going to duct tape my phone until I get a case.
  • Retina display: It hasn’t changed my life. Text is easier to read, which is good news for geezer geeks like me but it's not a big deal.
  • Camera/video: Nice. Good improvement. I love being able to take a low light snapshot of printed text from a few inches away and get a very readable image. For example (click for full image, the image is from a pending post on AT&T’s latest scam):
  • image
  • Performance: I was using a 3G. I’m seeing performance comparable to my wife’s 3GS. For me, this is a huge improvement but a 3GS users wouldn’t notice much.
iOS4
  • I think Apple did some keyboard layout consolidation. That’s a relief! I don’t see as much context-specific keyboard reconfiguration. That was a good idea in theory, but in practice it was a pain in the buttocks.
  • I’ve been waiting for multiple ActiveSync servers for ages. I do wonder if the battery drain is worse than CalDAV but this is a meaningful improvement.
  • Calendar is still very weak. The options for scheduling alerts still max out at 2 days ahead -- I need 3-4 weeks. You can only have one alert per item. Recurrence is very weak; you still can't schedule 2nd Tuesday of each month or the 2nd Tuesday of August each year. People over 77 don't exist and color assignments are per server, not per phone. All old bugs and design mistakes, none fixed.
  • Contacts can now be "linked". In the UI this shows as "Linked Cards" and "Link Contact", and in the documentation it's "Unfiied Contacts". This nomenclature confusion is a strong indicator that this feature was released prematurely. Do not use it. The iPhone manual says it's intended to support "contact unification". Contact unification sounds insane -- people with the same first and last names are grouped together in the iPhone UI. You can force this "linking" or break it. This sounds awful.
  • You still can't change group membership in the iPhone. If you select a group when you create a contact it will be assigned to that (single) group.
  • I'm not getting anything out of the multitasking. The apps I use haven't been updated to use it yet. I miss the ability to get to phone Favorites by clicking the Home button twice (now goes to multi-task).
  • The unified email boxes are a nice convenience, but I'd much rather Apple had fixed the damned calendar.
  • You still can't easily delete all images and videos from the iPhone camera roll. You need to use Image Capture on OS X to delete them. Image importing on OS X is as kludgy as ever (it's better on Windows).
  • I think Apple has fixed the bug with deleting a single instance of an Exchange server recurring meeting. It no longer deletes every instance. Wrong. They just changed it to a different bug.
  • The biggest iOS advantage for me is the ability to use ActiveSync with both Google and with my corporate Exchange server.
  • The OS has been stable for me. No crashes.
  • I like that I can turn off Cellular data from the Network setting.
  • Pairing with an external keyboard can be tricky.
  • The ancient text truncation bug in calendar memos has not been fixed.
Overall
  • iPhone 4 is an improvement over my iPhone 3, but it's only a mild improvement over the iPhone 3GS (better display, better camera, but more fragile). Certainly nobody with a working 3GS should spend a lot for an iPhone 4. If you have an iPhone 3, and are not in love with AT&T, you might want to buy a used 3GS out of contract and wait and see how the market evolves.
  • The biggest plus is the camera and support for multiple Exchange servers.
  • The biggest minus is that an already fragile phone is now more fragile and the Calendar remains pathetic.
See also
Update 7/31/10: I've had no reception on my phone while my wife's 3GS had "four bars" (More bars in more places, fake of course since she's on OS 3.) I restarted my phone and had "three bars". I bet that problem is software related and fixable.