TheRodinhoods

In 24 hours…

 

It all started with a tweet I read at 10pm. “In a soup now. How to extract contacts out of a Blackberry backup file!”:

It was re-tweeted by a friend of mine. Since we are working in mobile contact management space, the tweet grabbed my attention. I thought to myself “how difficult can it really be to restore a backup file!”. I tweeted back saying “we can try if you could send us the backup file”. Thankfully, he obliged and sent across the 27 MB backup file to us.

11pm: Now the real fun started. I started googling extensively for what a Blackberry backup file really is and how to extract data from it. First clue was that it is simply zip file. Unzipping it produced more than 150 clueless files!

12 midnight: Another hour of googling gave pointers to some code here and there that could read these files. As anyone who has downloaded code off the web would know, it seldom works. I found a python script that claimed to read the file, but the first try was a complete failure. Now it was time to debug into the script and understand where and why the code was failing.

2am: Two hours of hacking on the script gave insights into the file format and how it stores the data. My experience working with numerous complex imaging formats helped. Finally, I was able to identify which of the 150+ files contained contact information. All other files were not relevant.

3am: Another hour of hacking and first signs of light at the end of the tunnel. Was able to extract contacts and some contact information associated with them.

3:30am: All contacts were identified and extracted. However, the associated contact information was not properly extracted. Sleep time.

9:00am: Straight from bed to the keyboard. Realized more nuances of the file format.

11:00am: Finally almost all contact information was extracted successfully from the file. Now it was time to upload it to the server. Uploading to server was non-trivial as we had not uploaded so many contacts in one shot. There were 3000+ contacts with some duplicates too. Challenge was to upload contacts properly and remove any duplicates.

1:00pm: Investor phone call prep. These meetings are always setup at the wrong time!

1:30pm-2:30pm: Phone call with an investor. Same old blah blah blah.

3:00pm: Server side verion 1 completed. Testing upload throws a bunch of new challenges.

3:30pm: Preping for presentation to judging panel of NASSCOM AppFame Content

4:00pm – 5:00pm : Presenation to the panel (we eventually got selected as top-5 app at AppFame)

7:00pm: Version 2 of server side ready & uploaded to test server. Contacts succesfully uploaded, but more issues found.

9:00pm: Version 3 uploaded to test server. Everything working as expected.

10:00pm: Version 3 uploaded to production server. Contacts from the backup file uploaded to the server. With Intouch, all connected devices automatically see the contacts on the server. As we were uploading contacts, they were simultaneously getting pushed to his new Android device on which he had our app running. 200.. 400.. 600.. … 3194 contacts succesfully uploaded to the server and then downloaded to the Android device 🙂 And it all ends with a Thank you note from the user!

In 24 hrs, we were able to act on an opportunity (tweet) that knocked our door (TweetDeck), and in the process not only add a new userful feature, but more importantly acquired a happy user 🙂 This could potentially help a lot of Blackberry users get their old contacts back.

If you ever hear anyone talking problems related to their contacts, just point them to us *mycontactid / @intouchid / www.theintouchid.com

Lesson learned: Entrepreneurship is all about grabbing opportunities…

 

*************

Added on 15th Nov.’12:

Need your feedback!

We just launched our Blackberry app that finally frees your contacts! Access your contacts from anywhere and seamlessly move them to new or second device. Please download the app today and give us feedback: DOWNLOAD NOW or search for “IntouchId” app on AppWorld (ensure version shown is 0.3.0 or above)

 

*************