December 30, 2010

API Design

My last technical presentation for the year 2010. The tech talk is about How to design API's. Please find the presentation slides and hope this helps.

December 22, 2010

How to manage your Code Repository

Managing a personal code repository is not that easy, especially when you have projects of all different technologies. I currently develop applications in Java, Apple & Microsoft. Being a Microsoft guy for a decade I recently moved into other development areas which is pretty interesting and keeps me very busy.

All so often I get this question -- how do I manage my code repository. So thought of writing a small post which might help someone.

I use code.google.com to manage all my projects. The projects I host in code.google.com are my personal projects and I really don’t mind sharing it with public. I use SVN as my source control system. For developers who do not want public access to their source code can use GITHUB paid version which is as similar to code.google.com.

Following is my main Project folder hierarchy;

APPLE
---- IPHONE
---- IPAD
---- MAC
GOOGLE
---- EXTENSIONS
---- APP_ENGINE
MICROSOFT
---- XWT
---- ASP.NET
---- WPF
---- WIN

All of the above projects source are managed by code.google.com. Since I develop for both Apple and Microsoft; I have to use both Mac and Windows OS also three different Development IDE’s -- Visual Studio, XCode and Eclipse.

I use Ankh SVN plugh-in and Tortoise SVN for Visual Studio which is pretty awesome. For XCode and Eclipse I use Versions. All of the above folders are sync with my DropBox private folder, so that even if I don’t have my development PC--I can still continue my work from any PC. Also I have mirrored my local Project folder to a Portable HD. The following diagram will show you the overall setup.


I use Mozy.com for my weekly project backups, so my Projects are well secured from any disaster. I have pretty much the same setup for my other stuff as well. For example, Artworks, Video projects, Scanned docs and so forth.

The main idea behind this setup is to continue my work regardless of where I am. And by mirroring my code with multiple sources guarantee my code safety.

Hope this helps!

December 16, 2010

Software Design Principles & Patterns

Recently I've done a training session to my office colleagues on Software Design Principles & Patterns. I discussed on the most important design principles and design patterns. Hope it will be useful to you as well.

December 15, 2010

Gmail – the best example for iteration perfection

When Gmail initially released back in 2004, it was just a simple email system. By giving more storage and Ajax request processing technique made Gmail to gain attention from the users. But Gmail lack most of the functionalities which other email systems provided back then, such as folders or labels.

But today, Gmail is probably the best Web Application on the internet. Throughout the years Google engineers made the Gmail perfect by adding features— at least every month.

As developers, we typically experience the “Add More Features” syndrome. Rather than releasing to the market quickly we keep adding and adding more features to our app, eventually we loose the interest and the product was never released.

Release your app quickly to the market and also release features more often. Through development and release iterations makes your app perfect overtime.

December 8, 2010

iTunes Connect holiday shutdown

App Store submissions will be closed from 23 December to 29 December. Following is the official email from Apple. Also this only applies to Apple iOS developers.

iTunes Connect will be temporarily shut down from Thursday, December 23 to Tuesday, December 28 for the winter holidays. Access will resume on Wednesday, December 29.
During this shutdown, iTunes Connect will be unavailable. In addition, app releases and pricing changes which are scheduled to take place during the shutdown will be handled as follows:
All releases will not appear in the App Store until Wednesday, December 29. This includes apps scheduled to appear on the App Store for the first time as well as updates to existing apps.
Pricing changes will cause the app to become unavailable for purchase until Wednesday, December 29, at which point the app will become available at the new price. Please check to ensure you have not scheduled any price changes during this time.

Transformation

I still remember the days we wrote software and distributed in Floppy diskettes or CD’s. Back in those days web was merely bunch of static pages which most of the companies used to publish their company profiles.

But in the past few years’ things have changed immensely. People are connected to internet than ever before—we are in the process of transforming to a new technology era.

What does this mean ;

To Users :
People are connected to their loved ones than ever before—Social Networking. They were able to access their personal data such as photos from anywhere in the world.  Their productivity software is no longer limited to their desktop PC.

To Developers :
Developers have huge opportunities through various platforms. They no longer have to waste time on marketing or distributing their software. Apple App store, Windows marketplace, Google App Engine & Chrome App store reaches millions of user’s everyday.