Wednesday, April 1, 2009

Quick review of Design patterns

What is a design pattern and why it is so popular in the software industry? Is it restricted to software or can it be used in any area? When did it originate and how it became accepted by the world?

What is a design pattern?
When we give this question to Google, we get a definition from the wiki that "A pattern is the idea of capturing the architectural design ideas as resuable descriptions". This might be a bit complex to understand. But let me try to explain the same in my way! Let me take an example of preparing tea. Anybody can prepare tea in many number of ways. The main ingredients of tea are water,tea powder,sugar n milk. The last two are optional. The most common way is boiling the water, adding the tea powder. May be we can add the tea powder to the water and then boil the water. But this might take a little longer than the first way as water boils faster than a mix of tea + water. Hence the first way gives us more performance than the second one. When we prepare tea at home, this is not necessary, but try to think about a tea shop. Let me say here that adding the tea powder after the water boils is a pattern! Will this work for preparing coffee as well? Yes. So I can put the definition of pattern as "A reusable procedure that when implemented or used in various processes like software/manufacturing/healthcare or any other businesses gives the most perfect results." Ofcourse any procedure that does not give the perfect output can never be universally accepted. Also since its defined and proven already, implementing that is easier.

Is it restricted to software or can it be used in any area? When did it originate and how it became accepted by the world?
Patterns as the word says originated as an architectural concept in 1977 by Christopher Alexander. Software Industry made them popular! Yes. In 1987, Kent Beck and Ward Cunningham tried to define their ideas as patterns and applied them in their programming. Again, it was Erich Gamma who popularised those concepts through his book " Design Patterns: Elements of Reusable Object-Oriented Software ". Thus slowly, the concept of design patterns penetrated into the software world along with the OOAD concepts which directly points to C++ and mostly Java. Most of the design patterns are based on the object oriented concepts and are used by people who talk about objects.

Now we know about the origin of design patterns. We can pass on to the various types of design patterns that are defined already and being used in various applications.

Tuesday, March 24, 2009

IBM buys SUN

The big software giant IBM is buying another software bull, SUN Microsystems. The talks are going on, on and on. For more information, please see this serverside.com link.
IBM buying SUN

Sunday, March 22, 2009

My second year anniversary, March 22

I am celebrating my second year anniversary today - job quit anniversary. :) I quit my job and relocated to USA with my family of my husband and kid. Its been 2 years since then. Time passes away very fast!

Wednesday, February 25, 2009

Wonderful lyrics - Thamizh!

I love this song for lyrics and a wonderful music!


Tuesday, February 17, 2009

JavaFX

JavaFX is a new comer to the RIA area. Contributed by Sun Microsystems, this excellent technology plays with Graphics, Media, Web Services, Animation and many other dynamic activities in desktop as well as mobile platforms. This is a real breakthrough amidst the other competitors who are now ruling the WWW2.

I have joined the JavaFX passion course which is hosted online. Today being the first day, I was able to browse through the sample applications provided by Sun (Thanks to all the contributors). I really hope to venture out in this technology.

JavaFX online Training

JavaFX

Shiva Mantras

Om Nama Shivaya

Astrology

Astrology

Friday, February 13, 2009

Java and Web Services

Lately, some jargons are cycling in the web markets. The most prominent one is Web Services. This comes associated with a few other important words SOAP, UDDI, WSDL. Let us analyze what are these and what advantage do they give us in designing the web!

Foe beginners who want to know what is Web Services, the easiest defintion would be a software system that is used for system - system interaction.

When we say system interaction, its a very broad one. Any system to any system interaction. Yes! Irrespective of the platform, the language or the API, systems can talk to each other using Web Services. Thus Web Services are not restricted to any platform or language or for that matter anything.

Since I had been working with Java for a quite long time, I am more convenient with the object oriented technology. ie) Talking in terms of objects. Objects are sent/received from one end to the other in serialized forms or other forms. But when it comes to Web Services, the whole communication can be done through Extensible Markup Language (XML). However, these XML messages follow up a certain set of standards called SOAP(Simple Object Access Protocol).

I would like to include the link to WebServices tutorial here for any technical reference.
Java Web Services

Let me give a more lively example for Web Services Architecture.
Web Services are like resumes submitted in a job portal. All the resumes are registered in a job portal. When a particular skill is required, the person/company searches for the appropriate skill set(in form of resume) in the registry which is the job portal here. If discovered, that particular individual is invoked for interview. And thereby since the skill matches, the individual is delivered/recruited in the firm.

Similarly, a web service can be developed and registered with the service registry which is called the UDDI. Thus there may be a lot many web services in the internet. These can be accessed by various clients(any application). So when a client requires any particular service, it has to simply search the registry, find the appropriate service, when found, invoke the same n get the service delivered to it. This is the whole work flow of a webservice.

Bho Sambho

Bho Shambho
Dayananda Saraswathi


pallavi

bhO shambhO shiva shambhO svayambhO

anupallavi

gangAdhara shankara karuNAkara mAmava bhavasAgara tAraka (bho shambho)

caraNam 1

nirguNa parabrahma svarUpa gamAgama bhUta prapanca rahita
nija guhanihita nitAnta ananta
Ananda atishaya akSayalinga

caraNam 2

dhimita dhimita dhimi dhimikiTa kiTatOm tOm tOm tarikiTa tarikiTakiTa tOm
matanga munivara vandita Isha
sarva digambara vESTita vESa
Nithya Niranjana Nitya natesha
Isha sabEsha sarvEsha

Thursday, February 12, 2009

DOJO

I found DOJO equally interesting as GWT. I started getting information on DOJO and how it helps in simplifying the exhaustive coding of Javascript.
The article which I believe to be more helpful is from Java world. It consists of two parts :
Part I : http://www.javaworld.com/javaworld/jw-01-2009/jw-01-introduction-to-dojo-1.html?nhtje=rn_021209&nladname=021209
Part II : http://www.javaworld.com/javaworld/jw-02-2009/jw-02-introduction-to-dojo-2.html?nhtje=rn_021209&nladname=021209

GWT

Google Web Toolkit has become the talk of the town lately! For the past 2 years, it has been revolutionising the Web markets and has slowly perpetruated into every front end developer's mind. I have been collecting some materials for learning the same. Let me put those collections here for reference!
A small breakdown of GWT which I found useful as a beginner!
http://www.juixe.com/techknow/index.php/2006/05/21/google-web-toolkit-tutorial-the-break-down

Another simple example of developing AJAX using GWT
http://www.ibm.com/developerworks/opensource/library/j-ajax4/

This was the first example I tried out with GWT after downloading the same.
http://www.developer.com/java/web/article.php/3647201

Wednesday, February 11, 2009

My son Pranav's birthday!

Pranav born on February 11th, 2006 in Kuppusamy Naidu Hospital, Coimbatore. He became my everything after that. I love him so much.

Tomcat n ANT

Running a web application in TOMCAT using ANT
· Download Tomcat
· Download Ant
· Download JDK
· Set the JAVA_HOME and ANT_HOME
· Create a web project
Create a folder (project) which constitutes of src, web, web/WEB-INF
and doc directories
The src contains the java classes
The web contains the jsp files and htmls and images
The WEB-INF contains the classes directory which will have the
classes files of the java code and the web.xml file for the servlet
configuration.
The doc contains the document of the application
· Compiling(compilation of the java classes and putting them in the build folder), building(building the folders required for the deployment) and deploying (installing the application in the web server) using ANT
· ANT requires a build.xml in the root of the web project folder. If required, build.properties holding the necessary properties for the build.xml is placed in the same folder.
· The build.xml defines the web directory and the other folders where java files are placed. Then by using the javac command, the java files are compiled and placed in the build//WEB-INF folder.
· For deployment, the build folder contents are copied into the webapps folder of the Tomcat Server or a WAR file is made for the project and the same is copied into the webapps folder of the server.Either way, when the server is started, the WAR file contents are extracted into the webapps folder and thereby, the server identifies the application.