Friday, August 5, 2011

My wall is my hoarding

Now a days when ever my laptop boots automatically in a browser facebook opens. As if it is integrated with booting process. In fact to be in facebook or any social networking site we don't have to switch on computer. They are right there in our mobile and tablet in form of Apps connecting 24 X 7. And why use social networking I never thought, may be Human is a social animal thats why. But because of social networking , it opens a new dimension of communication. For example in face book I like "Michael Jakson" music. When there is offer or discount on Mj's album Amazon shows some advisement for me. If Ford plan to launch its new model Figo in India it will make sure that Figo has a page in Facebook. Well it looks the new and hottest trend to promote product,service or brand in social networking site. And its working also. The information or content can pass form one people wall to other and reach lots of user in no time. So all most every digital content available in internet is connecting to these social networking site. And its so simple for instance if you like this particular article you can like/share by just clicking button below. And the information will be on your wall and your friends wall. If they do the same it can reach to tremendous number of people. So I thought its really fantastic and ground breaking. 
I was trying relate this with our traditional way of advertising, Where people use to put information in big hoarding or they put posters in the wall of our houses. And If I need to post some information for example I want to give the house on rent it can be put into on wall of my house. So we used to use our wall for both inflow and outflow of information. And the same thing we are doing online through social networking. 
The inception of G+ with circle,hangout concept bring more excitement. Now I can define my neighbor who can see which part of my wall I want to. And I can hangout with groups of people. It means more social stuff to virtual world. So some way we are moving towards what we used to do in real world is through computer. Its good or bad I don't have much idea. 
If I put together as they came first one to one messaging/scarping (Orkut) then the concept of wall where many to many communication (FB) now we have G+ where we have neighbor and hangout ... If we think in this line what will be next ...  

Wednesday, June 22, 2011

Apple iCloud first impression



In recent Apple world wide developer conference Apple launched its new cloud service with other major release like lion and ios 5. Well apple is known for its visionary product and game changer in the industry. Specially with recent success of iPhone and iPad. So before iCloud release huge built up happened, Steve Job's medical leave also raised lots of eyebrows. Cloud was not new to the market. Amazon, Google and Microsoft have already entered into the market with their cloud products. I found two features which make iCloud different form competitors.
1) Most of the cloud services available are some form of infrastructure( ex : computing, storage etc) are hosted on clouds. As Steve Job told iCloud is much beyond than a Hard Disc on space. In this case applications are focus rather than the platform.Various application sync with each other over cloud automatically. User doesn't have to do anything extra. Applications will automatically take care of connecting to cloud and syncing the content. In Apple's word "it just work".
2) Sdk of iCloud is open for developers. It means not only those 6 or 7 apps from Apple will be on iCloud, it will be much beyond than that. It will certainly bring out lots of innovation and amazing apps from all over the world to one platform in a nice way. 
I am waiting to have an experience of these and services. 
Oh yes one more thing iCloud is free for everybody :)

Tuesday, May 17, 2011

Divide & Rule

"Divide & Rule" also known as  divide and conquer is a very famous way to attack the problem. History witnessed this strategy work in very complex situation. It is very famous in political and military circle. It is used to influence countries, win wars and play a big role in international politics.
In corporate people also take the help of this rule frequently. In Computer Science Design of Algorithm classes it is one of technique to attack a problem.
Mostly when we plan for enterprise software previous experience says that maintenance is more costlier than developing.  With time requirements, business rules change for which  maintenance is really necessary. As Change is the only constant in this world, we can not avoid the situation. So maintainability is the highest precedence while designing or developing an application. That is the reason Object Oriented languages (Java, C#, C++ etc.) are popular. They have the feature to mange the complexity of software better than procedural language. So basically OO design means managing the complexity. Divide the complex functionality into integration of smaller/maintainable  component. How to and what extend to divide ... These are some decision which designer has to take to have a optimum solution.
So next time we face a problem this will be an handy technique to approach it ......

Friday, May 6, 2011

Web services are Self Service

In my college days ... There used to be a techno fest. It is completely organised by students starting form event planning, marketing and execution. All students were contributing in some way. With some friends I had planned to put a food stall in the college for event. The college campus was 20km away from city, and in the event normal canteen service is shutdown. So food stall is hot cash business in that situation. We wanted to make some money by creating some value.But we had no idea how to manage a restaurant for two days. We decided to buy foods from a restaurant from the city and we will serve the same food in our stall with some higher price.
And the idea worked we made some handsome profit. And the students also appreciated the food quality.....

Some time to provide some service to end user the service provider need to consume some other service. In this scenario a system need to use service/resource of another system. If it happens on web (www) then it is called web service. It is a standard way how two system can interact. Normally one system host some service the other consume. At the end of the day user get the complete service :)

Monday, March 21, 2011

Spring king of all season

Most of the developer worked in Java is aware of spring frame work. And who doesn't know anything about Spring framework can think about experienced spring season. Like many other frame works available Spring also serve as container. It creates the java object/component run time and manage them. The application developer can concentrate on business logic and really forget about managing objects. When people talk about Spring two terms dependency injection and inversion of controller always comes. Let me also write about these... When there is a situation a object use another object (association).
Lets have an example:
Class Orchestra                  
{
     Dancer  dancer = new Dancer();
     Singer   singer = new Singer();
     perform()
       {
           dancer.dance();
           singer.sing();
       }
}

Here Orchestra class use Dancer and Singer to perform the job.  Well tomorrow we need some modern dancing and some different kind of Song we have to change the Orchestra class.
In Spring way we can re write some thing like below.

Class Orchestra                   
{
     IDancer  dancer;
     ISinger   singer;
     perform()
       {
           dancer.dance();
       singer.sing();
       }
}

Interface IDancer
{
   dance();
}

Interface ISinger
{
   sing();
}

BreakDancer implements IDancer
{
  dance()
   {
     ----
     ----
   }
}
RockSinger implements ISinger
{
  sing()
   {
     ----
     ----
   }
}

In Runtime we can inject the dancer and Singer to Orchestra using Spring. Well here with singer and dancer we are injecting the dependency to Orchestra. And Orchestra gave the control which kind of dancer and singer is going to perform. This is something called inversion of control.  We can do both xml based or annotation based configuration in Spring. Here is the xml version
<bean id="orchestra" class="com.action.Orchestra">
     <property name="singer"><ref bean="rockSinger"/></property>
    <property name="dancer"><ref bean="breakDancer"/></property>
</bean>
<bean id="rockSinger">
    <property name="target">
            <bean class="com.action.RockSinger" />
        </property>
</bean>
<bean id="breakDancer">
    <property name="target">
            <bean class="com.action.BreakDancer" />
        </property>
</bean>         


So spring gives such a environment where  we have all the freedom to configure anything up to any level.
Have a nice time in Spring :)

Thursday, March 10, 2011

Don't Own.Rent and Use



Its always a trade off whether to own or take it on rent. Like some time its very difficult to buy a luxury house but you can take it for rent. Actually its not applicable to only house we can extend it to car, furniture even girl friend also :p The advantage of taking on rent is as we don't own it we only pay as we use. The trend is slowly moving towards pay for usage of software also. For example to write this blog i don't have to own a blogging site, I can use google service with all other users. Certainly I can customize it . I agree i cant customize it to the extend if i own it. But it is really economical. Well the idea can be roll into all possible s/w. Lets think a scenario when the SAP will host all its enterprise solution in its server and all the company will use through web. Well it has challenge like security, customization according to user ... But i feel the industry is mature enough and ready to take this challenges. Infact TCS is already started with iON for small scale and mid scale industry.It reduces the software cost dramatically and can be accessible to lots. People say it software as service, software on cloud....Its just renting software... So before all the big player enter to the game lets rent some thing :P

Wednesday, March 2, 2011

Designing is a Luxury

It was a hot summer, I had joined a new team we all were working towards a new project. To understand the system and to arrive common understanding we were doing prototype and series of discussions with end users. I had a chance to part of design team. In that phase we had a review with our delivery manger. We updated the status like now we are designing the system and the status of the progress. The manager told "Well you have a luxury to design. Have fun." I thought whats the fuck design is essential and I read in all s/w life cycle book there is a design phase. Any way I forgot that statement as my brain was not able to process that statement further.
Then I tried to learn basic design concept, design pattern, Gang of 4 everything I found in internet. Somebody told me no need to reinvent the wheel use the existing solution available in pattern. My problem was to fit a pattern according to my requirement. Well some how I copied from existing design with little modification finished the design before dead line. We had a fantastic feed back in the review meeting. Then we kept it as a monument which we never use.

Its very obvious that developers needs freedom to write their implementation. If I want my design to be implemented its really important developer should understand. We can broadly say 2 things while doing/thinking about a design.
1) If tomorrow there is a change in business rule or a new feature is added, whether it can be plugged easily with out rebuilding the existing classes.
2) How I am going to communicate my idea to the developer, so that developer really can follow it
Still Thinking ....