« Creating iPhone Ringtones | Main | What's the Web, Anyway? »

Tuesday, September 02, 2008


Feed You can follow this conversation by subscribing to the comment feed for this post.


I think the weirdness of the data model is partly due to having carried over the Contacts data model directly from Mac OS X. "Birthday", for example, is used to automatically construct a Birthdays calendar in iCal.app on OS X, which shows the birthdays of all your contacts and lets you interact with Birthday events. On sync with my iPhone, my expectation is that this data will survive intact, and that I can recover all of that data if I lose it on my Mac by re-syncing with my iPhone. Dropping the data or mutating it, such that information is lost, would be undesirable.

There's no excuse for forcing Year though. The same problem occurs on OS X's version of Contacts (Address Book.app), which not only birthdays must have years, but every generic "Date" field also requires a year. That's just bizarre.


yliu: i wanted to include some text about how easy it would be to fix such a broken data model, and the fact that making mandatory things optional always is risky. i guess i simply forgot to write that part of the post. thanks for bringing that up!

the current model is sufficiently broken to warrant a fix. and aren't people complaining about the MacOS X contact model, since it has the same inappropriate design?

so here are the three ways of how to fix the model:

- if you simply update the model to make the year optional, applications assuming that there always is a year will break.

- it would be possible to add a "compatibility switch" to the birthday field, which by default would be set to "broken". this would hide birthdays without a year from old applications, acting as if the associated contact did not have a birthday at all. by setting it to "fixed", new application could access these yearless birthdays.

- there could be an additional field for "birthday" for yearless birthdays only, but that would probably be the most ugly of all solutions.

my guess is that no fix from apple can be expected anytime soon. but then again i am wondering how people are using this on MacOS X. is everybody happily entering fake years? or am i the only one who does not know the birthdates for all birthdays?


+1, this sucks.

I have chosen my fake years so that it is obvious they are fake. Something like 1111, or even 0001.

This seems more natural and more 'universal' that a single magic year. The rule could be: "if the age is more than 200 years, this must be wrong so the year is fake.

A Facebook User

@Alex, It does make sense to have years that are over 200 years old. Even though the person may not be alive doesn't mean their b-day ceases to exist. What about if you have a great, great, great grandfather who was someone notable and you want to set his birthday? You get the point.

I don't think the model is broken, the point is, you put in their birth year and it will remind you how old they are turning that year when the date comes up. However, I do agree it shouldn't be mandatory to input a year for those of us who do not know it. This could be easily solved by adding "unknown" to the year drop-down field as the first choice.


Nobody mentioned the obvious reason why they want the year. That way they can collect additional personal information on people to use or sell. Age is a very important piece of demographic information that many companies and advertisers want. It bothers me that my personal information may thus be shared with Apple by friends or family and I won't even know it, along with my relationship to the person and other tidbits, but that's already happening in Facebook. I guess we're all screwed if we want to use this technology, since our "leaders" are asleep at the privacy switch.

The comments to this entry are closed.