Conifer Productions

From ideas to apps. From mobile to global.

Goodbye vCard, hello jCard!

The vCard format has served us well for encoding and exchanging contact information, but there is a better alternative – jCard. In this post I’ll describe why I think jCard can be better than vCard, and should be adopted by every software vendor who deals with contacts. Both vCard and jCard are text-based formats, but whereas vCard has a unique legacy grammar, jCard is based on JSON. They both represent essentially the same data model that describes contact information: name, phone number, address, e-mail, and so on. Read more →

12 12 12

Here we go again… Today is December 12, 2012 in the Gregorian calendar, and people are waxing poetic about how symmetrical, how repetitive and how unique this date is. (Even people who really should know better.) Some people are even getting married today. I wish them the best of luck.

But let me put my science hat on for a moment, and offer the following statement:

The symmetry / reflexivity / repetitiveness / uniqueness of a date expression such as 12/12/12, 11/11/11 etc. ad nauseam, is not axiomatic. It is an artefact of the presentation layer.

In layman’s terms:

It’s not really like that, it’s just written that way.

Read more →

Unicode is in Your Now

If this blog entry was written 10–15 years ago, the title would have been “Unicode is in Your Future“. Luckily, the Unicode standard has been widely adopted during the last decade, so much so that it has almost become a part of the process and not something that you need to expend very much extra effort on. It is here Now, and has been for some time now.

However, Unicode still isn’t quite as widely understood as it needs to be, and it is often adopted as a black box that nobody can really fix when something goes wrong. Therefore it is not at all bad to try and bring it into perspective.

You need to understand at least why Unicode should be used, and how not to make it more complicated than it is (even though it can still be quite complicated). So keep reading.

Read more →

What was that date again?

For many of us, dates and times are absolutely essential in our daily lives. We make appointments, set deadlines, celebrate birthdays and anniversaries, and generally mark time using clocks and calendars.

What makes dates and times interesting from a programmer’s perspective is that while there is a standard time (the Coordinated Universal Time or UTC), there are multiple local time zones in use all over the world. A single instance in UTC has many local equivalents, and offsets between time zones and universal time are wild and wonderful.

Not only are time zones a little tricky, but there are also multiple local representations for an instance in local time. A representation in this context means the way it is printed in a daily newspaper, in the calendar, and indeed, on the screen of a computer or a mobile device. In the realm of internationalization (I18N) they are known as date and time formats.

The conventions for showing local time are well established, and the differences between them are significant enough to cause a lot of confusion if care is not taken. While it would be the most logical thing to do (thank you Mr. Spock), it is hardly practical to expect all the world’s population to adopt a single standard date and time format such as the ISO 8601 international standard notation in their daily lives. The national and linguistic conventions are very well established locally.

Just recently, Nokia launched new Windows Phone devices in their Lumia series. The company wanted to build anticipation before the announcement with short teaser videos which all marked the date of the launch: 05.09.2012. If you saw this date advertised early in the year, you might think it could mean either September 5th or May 9th this year. But which is it? 

Read more →