I happened to visit my area BBMP contact office today to submit papers to apply for khata. The revenue inspector there demanded a huge sum of money to process the application as though it was his birth right. I was so frustrated that I felt at some point like giving him one tight slap and hold his collar and tell him to do what the govt pays him for……what the heck….why does he need so much money to do his own bloody job! The entire system is so damn corrupted….it stinks! I wonder how this can be corrected. Now I didn’t pay him any money so I had to come back with my application…what next…hail RTI…most likely I will simply submit the application and then post a couple of RTI queries to move my file…might be a long drawn process but then I will have to face it…

People…you govt officials…politicians and all those out there who want to make that fast buck…remember one thing you only need enough money to lead a peaceful life. The more you run after it…the faster money will move ahead there will be no end to it. You swindle so much money…crores and crores but you can only spend whatever little you need. Rest can never be carried over. Be prudent…live and let live guys!!

Being an android developer in India its frustrating because google doesn’t let you sell apps from India. And there are host of all legal and tax issues for your friends in the us who try to sell on your behalf. There are sites which take care of all this and sell apps on your behalf but they take a large commission of an already low selling android market. But India being such a larger developer base, how can google not think of still enabling India in the list of countries to sell apps. It is really frustrating to say the least. The same apps iphone versions are so easy to sell…thumbs up apple and thumbs down google….

I must say working on your own for yourself is probably very very tough. It is difficult to keep yourself motivated and focused. So many distractions and there is no one chasing you for work to be completed :-)….nywayz we are not too far from posting couple of apps on the android market soon…unfortunately google doesn’t support India as one of the merchant locations yet :-(…..so thanks my friends in the US for helping me sell these apps on the market. I’ll post the apk files on this blog in a while for people interested in checking out some of the apps…so keep visiting

The android platform defines various “activities”. What are activities?? Loosely defined an activity is a piece of code that manages one user screen at a time. When you are writing a mobile application, you may have the need to write various activities. In order to enable communication between activities, we require what are called “intents”. In the beginning it took me sometime to absorb these concepts and hence I decided I write up a small note here so it might help others.

The activities are all event driven. For each event – called an “action” in android parlance, there could be an “event handler”. Now how do we define these? Here is where the android manifest file helps us. In the android manifest file, we define various activities. For each activity, we define a set of “intent-filters”. Think of the manifest file as a registry.When an app is launched, its registry is processed so android exactly knows how many activities are there and what kind of event can each activity process. Lets look at an example below,

In the above manifest, there are 2 activities which have been defined. And each activity has a set of “intent-filters”. What happens is when a particular action for instance, android.intent.action.PICK happens within the application, android knows that there exists an activity called “NotesList” which can handle this particular action. Unless the programmer explicitly delegates this action to a different activity, android implcitly knows that NotesList activity can handle the PICK action. This is called “intent resolution”.

I asked this question to one of my developers one day….”what is your understanding of aspect oriented programming?” and this is what I got as a response…

Aspect oriented programming is the one wherein we define all classes in xml files and then allow them to be used between classes by injecting them….

wait a min…are we killing aspects or dependency injection or both. The answer pained me. These days its common to use frameworks like spring and hence concepts like AOP and DI. So I thought it will be worthwhile to give my version of what aspects are..

Aspects are cross-cutting functions that can be “applied” onto an existing piece of business logic code. As application developers the most concern that we have is ensuring that the logic of the application is perfect. As we do this, we are often required to do things like logging, auditing etc. These functions can be coded separately and then “advised” to pieces of code that require it without interspersing application code with all their code. Lets take it a little further…

Suppose for instance, I am interacting with a backend system to complete certain business operations. In my application, there could be multiple such systems which I will need to communicate to. There could be a scenario where one of these backend systems suddenly stops responding and my application would then throw a SystemUnavailableException…..I have a good reason to notify some of the important folks that a particular system is down so they take appropriate action. Would you like every developer of the application to take care of this? Perhaps not….So we develop the notification aspect. The notification aspect is then “configured”(refer to your specific framework’s documentation on how to configure) to run when SystemUnavailableException is thrown.

What we have done effectively is move out all the notification logic into an aspect that can be applied at will to any application code leaving the application business logic code blissfully unaware that certain smart things are happening in the background…

Is that a good enough explanation for an aspect? Leave a comment if so 🙂