Sunday, January 12, 2014

சிறுகதை: சுன்னத் கல்யாணம்


Note : 

This is the feedback in http://www.vinavu.com from Mr.Tipu regarding a essay 

http://www.vinavu.com/2013/12/31/vanakkarayya-short-story/

I Said: 
Dear Tipu,

Doing Sunanth is good according to doctors. More over it gives us health [out of infection].
It [Doing Sunanth ] is good and it can be done by a doctor in a safe method instead of done by religious people.


with regards,
K.Senthilkumaran


Tipu replayed:

சுன்னத் கல்யாணம்


நன்றி செந்தில்,மருத்துவ வசதிகள் பெருகி விட்ட இன்றைய கால கட்டத்தில் பெரும்பாலும் மருத்துவ மனைகளில்தான் வலி தெரியாமல் சுன்னத் செய்து கொள்கிறார்கள்.பாரம்பரிய இசுலாமிய மருத்துவர்கள் [ஒசுதார்கள்] கூட மரத்து போக செய்யும் ஊசியை சிறுவனின் தொடையில் போட்டுவிட்டே சுன்னத் செய்கிறார்கள்.இந்த ஊசிகள் பரவலாக புழக்கத்தில் வருவதற்கு முன்பு கூட அவர்களின் பாரம்பரிய மருத்துவ மற்றும் அனுபவ அறிவு காரணமாக சிறுவனுக்கு பெரிய அளவுக்கு துன்பம் ஏற்படாமலேயே சுன்னத் செய்து வந்திருக்கிறார்கள்.
ஒரு சிலர் சித்தரிப்பது போல சுன்னத் நிகழ்வு ஒரு துன்ப நிகழ்வாக சிறுவர்களின் மனதில் தங்கியிருப்பதில்லை.மாறாக ஒரு இன்ப நிகழ்வாக சிறுவர்களின் மனதில் தங்கியிருக்கிறது.முப்பது நாற்பது ஆண்டுகளுக்கு முன் நடந்த ஒரு சில நிகழ்வுகளை சொல்கிறேன்.
சுன்னத் செய்வதை ”சுன்னத் கல்யாணம்” என்றே அழைப்பார்கள்.பொதுவாக மாலையில்தான் செய்வார்கள்.மதியம் உறவினர்,நண்பர்களுக்கு கல்யாண வீட்டில் விருந்து கொடுப்பார்கள்.அவரவர் ஆற்றலுக்கு ஏற்ப இதன் அளவு இருக்கும்.விருந்துக்கு பின் காத்திருக்கும் வேளையில் கலகலப்புக்கு பஞ்சமிருக்காது.அனைவருமே ”கல்யாண மாப்பிள்ளை” யை கொண்டாடுவார்கள்.பையனும் பரிசுப்பணங்கள்,புத்தாடை தரும் மகிழ்ச்சியில் இங்குமங்கும் ஓடியாடிக் கொண்டிருப்பான்.
பையனின் தந்தைக்கு மாமன் மச்சான் உறவுமுறையினரும் பையனின் தாய்வழி பாட்டன்மார்களும் கேலி பேசிக் கொண்டே இருப்பார்கள்.
ஒருமுறை ஒருவர் ”கல்யாண மாப்பிள்ளை”யை அழைத்து காதோடு ஏதோ சொன்னார்.சொல்லிக் கொண்டிருக்கும்போதே தந்தையை ஆச்சரியமாக திரும்பி திரும்பி பார்த்த பையன் நேராக தந்தையிடம் வந்தான்.
அத்தா,உனக்குமாத்தா இன்னைக்கு சுன்னத் கல்யாணம்
அதிர்ந்து போன தந்தை ”யார்ரா சொன்னது.அப்டிலாம் இல்ல”
காசிம் மாமுதா சொன்னாக.அதுனாலதா நீயும் புது சட்டை போட்டிருக்கியாம்.
சுற்றி இருந்தவர்கள் கொல்லென்று சிரித்து விட்டனர்.எல்லோரும் சிரித்தவுடன் பையனும் புரிந்தும் புரியாமலும் சிரிக்க ஆரம்பித்தான்.தந்தைக்கு கோபம் வந்து விட்டது.காசிமை நோக்கி கத்தினார்.
ஏண்டா.கூறு கெட்ட பயலே,சின்ன பயல்ட்ட என்ன பேசுறதுன்னு உனக்கு விவஸ்தை இல்ல.உளறுவாப்பயலே.
அந்த காசிம் பயல் அசருவதாக இல்லை.
”இல்ல மச்சான்,முப்பது நாப்பது வருசத்துக்கு முன்னால பண்ணிருப்பீக மறுபடியும் வளந்துருக்க போவுது.ஏதுக்கும் இன்னொருக்கா பண்ணிக்கங்க”
அடி செருப்பால நாயே,வந்து மிதிச்சன்னா ஊட்டி தெறிச்சு போகும்.
ஆனால் சிரிப்பலை அடங்குவதாக இல்லை.காசிம் பயந்தது போல பாவலா காட்டிக் கொண்டு அவசரமாக இடத்தை காலி செய்து விட்டு பந்தலுக்கு வெளிய போய் புறப்பட ஆயத்தமாக நின்று கொண்டான்.இன்னொருவர் எழுந்து ”காசிம்,நில்ரா நானும் வர்றேன்”என்று சொல்லிவிட்டு தந்தையிடம் வந்தார்.
”அப்ப மச்சான் நானும் புறப்படுறேன்.சாயங்காலம் அசர் தொழுத ஒடன வந்துர்ரென்”
நல்லது,மாப்பிள்ள,, தொழுத ஒடன வந்துரு,சர்பத் கரைக்கணும்.
சரி மச்சான் போற வழிலதான ஒசுதார் வீடு.எதுவும் சொல்லனுமா
இல்ல நேத்தே நா சொல்லிட்டேன்
”இல்ல, ரெண்டு கத்திய ரெடி பண்ணி கொண்டார சொல்லவா உங்களுக்கும் பண்ணனும்னு பேசிக்கிட்டு இருந்தீகளே”
சொல்லிவிட்டு அவசரமாக இரண்டு பேரும் ஓடிப்போகிறார்கள்.தந்தையோ நற நற வென பல்லை கடித்துக் கொண்டு அவர்களை திட்டிக் கொண்டிருந்தார்.
இன்னொரு வீட்டில் அண்ணன் தம்பி இருவருக்கு ”சுன்னத் கல்யாணம்”. சற்று வயதானவர் சின்ன ”கல்யாண மாப்பிள்ளை”யிடம் சொன்னார்.
டேய் பேரப்புள்ள.இன்னைக்கு உனக்கு சுன்னத் கல்யாணமா.இரு ஒசுதார் வர முன்னால உன் குஞ்ச நா அறுத்து எடுத்துட்டு போயிருவேன்.
பையன் சற்று திகைத்து விட்டு சொன்னான்.”போங்க நன்னா , நீங்க சும்மா சொல்றீங்க” ,
சற்று நேரம் கழித்து பெரிய ”கல்யாண மாப்பிள்ளை”யிடமும் அதையே சொன்னார்.தன் கையை பிடித்திருந்த பெரியவரின் கையை உதறி விட்டு சற்று விலகி நின்று அவன் சொன்னான்.
”அது வரைக்கும் என் கை புளியங்கா பறிக்குமா.நா உங்க குஞ்ச அறுத்துருவேன்”
சுற்றி இருந்தவர்கள் சிரிப்பில் பெரியவருக்கு வெட்கம் தாளவில்லை. அதிலிருந்து அவர் இருக்கும் இடத்தில் அந்த பையனின் தலை தட்டுப்பட்டாலே அருகில் இருப்பவர்கள் ”யோவ்,உங்க அண்ணன் பேரன் வர்றாய்யா ஏதுக்கும் கைலிய இறுக்கி கட்டிக்க” என்பார்கள்.அவர் இறக்கும் வரை இந்த மாதிரியான கேலிகள் ஓயவில்லை.
இந்த குதூகலங்களால் கவரப்படும் அதுவரை சுன்னத் செய்யப்படாத சிறுவர்கள் எனக்கு எப்பம்மா சுன்னத் கல்யாணம் பண்ணுவீக என்று கேட்பது கூட உண்டு.

By Tipu

Java Object Oriented Programming Simple Examples

//Note: Java Object Oriented Programming Simple Examples

//[1]
class Bank{
private int accno;
private String name;
private float balance;

public void setData(int a,String n,float b){
accno=a;
name=n;
balance=b;
}
public void display(){
System.out.println("Accno"+accno);
System.out.println("Name"+name);
System.out.println("Balance"+balance);
}
}
class Bankcust1{
public static void main(String arg[]){
Bank c1=new Bank();
c1.setData(1000,"sun",500.00);
c1.display();
Bank c2=new Bank();
c2.setData(1001,"sen",500.00f);
c2.display();
}
}



//[2]
class Bank{
private int accno;
private String name;
private float balance;

public void setData(int a,String n,float b){
accno=a;
name=n;
balance=b;
}
public void display(){
System.out.println("Accno"+accno);
System.out.println("Name"+name);
System.out.println("Balance"+balance);
}
}
class Bankcust2{
public static void main(String arg[]){
Bank c1=new Bank();
c1.setData(1000,"sun",500.00f);
//c1.display();
Bank c2;
c2=c1;
c2.setData(1001,"sen",600.00f);
c1.display();
}
}



//[3]
class Bank{
private int accno;
private String name;
private float balance;
Bank(){
accno=1000;
name="sun";
balance=500.0f;
return 0;
}
Bank(int i,String n,float b){
accno=i;
name=n;
balance=b;
}
public void display(){
System.out.println("Accno"+accno);
System.out.println("Name"+name);
System.out.println("Balance"+balance);
}
}
class Bankcust3{
public static void main(String arg[]){
Bank c1=new Bank();//calling no argument constructor
c1.display();
Bank c2=new Bank(1001,"sen",600.0f);//calling three argument constructor
c2.display();
}
}




//[4]
class Bank{
private int accno;
private String name;
private float balance;
Bank(){
accno=1000;
name="sun";
balance=500.0f;
}
Bank(int i,String n,float b){
accno=i;
name=n;
balance=b;
}
public void interest(){
float i=balance*10.0f/100;
System.out.println("interest="+i);
balance =balance+i;
}
public void interest(int ip){
float i=balance*ip/100;
System.out.println("interest="+i);
balance =balance+i;
}
public void display(){
System.out.println("Accno"+accno);
System.out.println("Name"+name);
System.out.println("Balance"+balance);
}
}
class Bankcust4{
public static void main(String arg[]){
Bank c1=new Bank();//calling no argument constructor
c1.interest();//calls no argument interest method
c1.display();
Bank c2=new Bank(1001,"sen",600.0f);//calling three argument constructor
c2.interest(8);//calls one argument interest method
c2.display();
}
}



//[5]
class Bank{
private int accno;
private String name;
private float balance;
Bank(){
accno=1000;
name="sun";
balance=500.0f;
}
Bank(int accno,String name,float balance){
this.accno=accno;
this.name=name;
this.balance=balance;
}
public void interest(){
float i=balance*10.0f/100;
System.out.println("interest="+i);
balance =balance+i;
}
public void interest(int ip){
float i=balance*ip/100;
System.out.println("interest="+i);
balance =balance+i;
}
public void display(){
System.out.println("Accno"+accno);
System.out.println("Name"+name);
System.out.println("Balance"+balance);
}
}
class Bankcust5{
public static void main(String arg[]){
Bank c1=new Bank();//calling no argument constructor
c1.interest();//calls no argument interest method
c1.display();
}
}



//[6]
class Bank{
private int accno;
private String name;
private float balance;
public static int cust=0;
Bank(){
System.out.println("object created now");
cust++;
}
public void setData(int a,String n,float b){
accno=a;
name=n;
balance=b;
}
public void display(){
System.out.println("Accno"+accno);
System.out.println("Name"+name);
System.out.println("Balance"+balance);
}
}
class Bankcust6{
public static void main(String arg[]){
Bank c1=new Bank();
Bank c2=new Bank();
Bank c3=new Bank();
Bank c4=new Bank();
Bank c5=new Bank();
System.out.println("no of customers in the bank"+Bank.cust);
}
}





Java Arrays Simple Example Programes

//Note:  Analysis the programs errors,outputs and Understand the Java Array Concept

class Demo1{
public static void main(String arg[]){
int a[]=new int[10];
for(int i=0;i<=9;i++)
{
a[i]=i*i*i;
System.out.println(a[i]);
}
int s=0;
for(int i=0;i<=9;i++)
{
s=s+a[i];
}
System.out.println("s="+s);
}
}



class Demo2{
public static void main(String arg[]){
int a[]=new int[10];
for(int i=0;i<=9;i++)
{
a[i]=i;
System.out.println(a[i]);
}

int s=0;
for(int i=0;i<=9;i++)
{
s=s+a[i];
}
System.out.println("s="+s);
int t=0;
for(int i=0;i<=9;i++){
for(int j=i+1; j<=9;j++){
if(a[i]<a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(int i=0;i<=9;i++)
{
System.out.println(a[i]);
}
}
}


class Demo3{
public static void main(String arg[]){
int a[]={1,5,7,8,9,2,17,18,19,11};
System.out.println("The given numbers are ..");

for(int i=0;i<=9;i++)
{
System.out.println(a[i]);
}
int t=0;
for(int i=0;i<=9;i++){
for(int j=i+1; j<=9;j++){
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
System.out.println("The numbers in ascending order are ..");
for(int i=0;i<=9;i++)
{
System.out.println(a[i]);
}
}
}


class Demo4{
public static void main(String arg[]){
int a[][]= new int[3][3];
a[0][0]=7;
a[0][1]=7;
a[0][2]=8;
a[1][0]=9;
a[1][1]=1;
a[1][2]=2;
a[2][0]=7;
a[2][1]=7;
a[2][2]=8;
for(int i=0;i<=2;i++){
for(int j=0;j<=2;j++){
System.out.print(a[i][j]+" ");
}
System.out.println(" ");
}
}
}


class Demo5{
public static void main(String arg[]){
int a[][]={{1,2,3},{4,5,6},{7,8,9}};
for(int i=0;i<=2;i++){
for(int j=0;j<=2;j++){
System.out.print(a[i][j]+" ");
}
System.out.println(" ");
}
int s=0;
for(int i=0;i<=2;i++){
for(int j=0;j<=2;j++){
if(i==j)
s=s+a[i][j];
}
}
System.out.println("The sum is "+s);
}
}



Java Control Structures Programming Examples


//Note:  Analysis the programs errors,outputs and Understand the Java if,for,while,do while,continue,break Statements


class Demo1{
public static void main(String arg[]){
int a=0;
int b=5;
int c=6;
if((a!=0)&&((b/a)>=2))
{
System.out.println("True");
}
else
{
System.out.println("False");
}
}
}

class Demo2{
public static void main(String arg[]){
int a=2;
int b=5;
int c=6;
if((a<b)||(a>c))
{
System.out.println("True");
}
else
{
System.out.println("False");
}
}
}

class Demo3{
public static void main(String arg[]){
int a=1;
int b=5;
int c=6;
if((a!=0)&&((b/a++)>=2))
{
System.out.println("True");
}
else
{
System.out.println("False");
}
System.out.println("a="+a);
}
}

class Demo4{
public static void main(String arg[]){
int a=11;
int b=5;
if(a>b){
System.out.println("Maximum="+a);
}
else{
System.out.println("Maximum="+b);
}
}
}

class Demo5{
public static void main(String arg[]){
int a=5;
int b=7;
int c=17;
if((a>b)&&(a>c))
System.out.println("Maximum="+a);
if((b>a)&&(b>c))
System.out.println("Maximum="+b);
if((c>b)&&(c>a))
System.out.println("Maximum="+c);
}
}

class Demo6{
public static void main(String arg[]){
int m=3;
if(m==1){
System.out.println("January");
}else if(m==2){
System.out.println("Febrauary");
}else if(m==3){
System.out.println("March");
}else{
System.out.println("some other months");
}
}
}

class Demo7{
public static void main(String arg[]){
int m=0;
switch(m){
case 0:
      System.out.println("zero");
        break;
case 1:
        System.out.println("one");
        break;
case 2:
        System.out.println("two");
        break;
case 3:
        System.out.println("three");
        break;
default :
System.out.println("some other values");
        break;
}
}
}

class Demo8{
public static void main(String arg[]){
long m=0;
switch((int)m){
case 0:
case 1:
case 2:
        System.out.println("the value may be zero,one or two");
        break;

case 3:
        System.out.println("three");
        break;

default :
System.out.println("some other values");
}
}
}

class Demo9{
public static void main(String arg[]){
char m='h';
switch(m){
case 'z':
case 'o':
case 't':
        System.out.println("the value may be zero,one or two");
        break;

case 'h':
        System.out.println("three");
        break;

default :
System.out.println("some other values");
}
}
}

class Demo10{
public static void main(String arg[]){
int i,sum=0;
for(i=1;i<=10;i=i+1){
sum=sum+i;
 }
System.out.println("sum="+sum);
}
}

class Demo11{
public static void main(String arg[]){
int i,sum=0;
for(i=0;i<=10;i=i+2){
sum=sum+i;
 }
System.out.println("even sum="+sum);

}
}

class Demo12{
public static void main(String arg[]){
int i,sum=0;
for(i=1;i<=10;i=i+2){
sum=sum+i;
 }
System.out.println("odd sum="+sum);
}
}

class Demo13{
public static void main(String arg[]){
int i,prod=1;
for(i=1;i<=5;i=i+1){
prod=prod*i;
 }
System.out.println("prod="+prod);

}
}

class Demo14{
public static void main(String arg[]){
int i,s=0;
for(i=1;i<=10;i=i+1){
if(i==7) continue;
s=s+i;
System.out.println(i);
}
System.out.println("sum="+s);
}
}

class Demo15{
public static void main(String arg[]){
int i,s=0;
for(i=1;i<=10;i++){
if(s>=35) break;
s=s+i;
System.out.println(i);
}
System.out.println("sum="+s);
}
}

class Demo16{
public static void main(String arg[]){
int i=1,s=0;
while(i<=10){
s=s+i;
System.out.println(i);
if (i==7) continue;
i++;
}
System.out.println("sum="+s);
}
}

class Demo17{
public static void main(String arg[]){
int i=1,s=0;
while(i<=10){

if (i==7){
i++;
continue;
}
s=s+i;
System.out.println(i);
i++;
}
System.out.println("sum="+s);
}
}

class Demo18{
public static void main(String arg[]){
int i=1,s=0;
do{
System.out.println(i);
if(i==7) {
i++;
continue;
}else
{
s=s+i;
i++;
}
}while(i<=10);
System.out.println("s="+s);
}
}

Java Data Types Programming Examples

//Note:  Analysis the programs errors,outputs and Understand the Java Data Type concepts

//[1]
class Demo1{
public static void main(String arg[]){
byte b=278;
System.out.println("b="+b);
}
}

//[2]
class Demo2{
public static void main(String arg[]){
byte b=78;
short s=178;
long i=20;
int k=b+i+s;
System.out.println("k="+k);
}
}

//[3]
class Demo3{
public static void main(String arg[]){
byte b1=78;
byte b2=78;
byte b3=b1+b2;
System.out.println("b3="+b3);
}
}

//[4]
class Demo4{
public static void main(String arg[]){
float f=78.8f;
float d=78.9+f;
System.out.println("d="+d);
}
}

//[5]
class Demo5{
public static void main(String arg[]){
char c='a';
System.out.println("c="+c);
int i=c+1;
System.out.println("i="+i);
System.out.println("c="+(char)i);
}
}

//[6]
class Demo6{
public static void main(String arg[]){
short s=12;
int i=s;
float f=s;
System.out.println("s="+s);
System.out.println("i="+i);
System.out.println("f="+f);
}
}

//[7]
class Demo7{
public static void main(String arg[]){

char s='a';
int i=s;
float f=s;
System.out.println("s="+s);
System.out.println("i="+i);
System.out.println("f="+f);
}
}

//[8]
class Demo8{
public static void main(String arg[]){
short s;
int i=700;
s=(short)i;//convert integer to short

System.out.println("s="+s);
}
}

//[9]
class Demo9{
public static void main(String arg[]){
boolean b=true;
int i =(int)b;//incompatable
System.out.println("i="+i);
}
}

//[10]
class Demo10{
public static void main(String arg[]){
int i=10;
int j=3;
int k=i%j;
System.out.println("k="+k);
int a=i/j;
System.out.println("a="+a);

}
}

//[11]
class Demo11{
public static void main(String arg[]){
int i=10;
int j=3;
boolean b=(i==j);
System.out.println("b="+b);
}
}

//[12]
class Demo12{
public static void main(String arg[]){
int i=10;
int j=3;
int k=7;
boolean b=(i>j)^(i>k)^(i<j);
System.out.println("b="+b);
}
}

//[13]
class Demo13{
public static void main(String arg[]){
int i=10;
int j=3;
int k=7;
boolean b=((i>j)|(i>k))&(i<j);
System.out.println("b="+b);
}
}

//[14]
class Demo14{
public static void main(String arg[]){
int i=7;
int j=9;
int k=i&j;
System.out.println("k="+k);
}
}

//[15]
class Demo15{
public static void main(String arg[]){
int i=7;
int j=9;
int k=i^j;
System.out.println("k="+k);
}
}

//[16]
class Demo16{
public static void main(String arg[]){
int i=-8;
int j=~i;
System.out.println("j="+j);
}
}

//[17]
class Demo17{
public static void main(String arg[]){
int i=8;
int j=i<<2;
System.out.println("j="+j);
}
}

//[18]
class Demo18{
public static void main(String arg[]){
int i=0xf;//hex value stored
int j = 07;//octal value stored
char c ='a';
int k = i+j+c;//15+7+97
System.out.println(" c ="+c);
System.out.println(" unicode value of c ="+(int)c);
System.out.println(" k ="+i);
System.out.println(" k ="+j);
System.out.println(" k ="+k);
}
}


A Study on Bioinformatics Algorithms: Conclusion



           My thesis work is concluded at this point due to my timing restriction. So Far, in the past one year, I learned about Molecular Biology, Genetics, Genome, and Immunology. From these basic ideas, I learned about Sequence alignment techniques in DNA sequence. Next I started learning about BioInformatics Algorithms with the background idea of Computer Algorithms.  I feel the real aim of computer science is to solve the challenging problems posted by Life Science. 

          Every work done here is with full of enthusiasm and inner pleasure in my mind. I am really happy to inform our scientific community that we have solution for Motif Finding Problem through the emerging technologies like Client Server Computing, Three Tier Architecture, and Distributed Computing Models.

          The Chapter 13.4.3 of my thesis work provides the climax for my script. The Solution provided here is based on the RMI technology invented by Sun Microsystems. I altered the Three Tire Architecture model according to our needs. I mean instead of using a single RMI server for our application, I used ‘N’ number of RMI servers; the input is divided in to N subsets and assigned into ‘N’ RMI servers. By the way, the problem will be solved quickly. If We need ‘T’ seconds to solve this Motif Finding Problem with One CUP, the same problem can be solved by  ( T / N )  seconds, when ‘N’ number  of CPUs are employed in a Distributed Approach.

         My thesis work is only the end of the beginning of my efforts, but not the beginning of the end. I hope that I will drive myself to solve the Biological problems with computational approach in the forth-coming 30 years.


A Study on Bioinformatics Algorithms: Aim and Objective



           My aim is to study varies Bioinformatics related problems and finding solution with background knowledge of Molecular Biology.  Learning Molecular Biology gives me pleasure and more innovative ideas. Since I am a very small species in this world, I cannot analysis all the problems, which are related to this field. So I choose a particular problem named as Motif Finding Problem, which is closely related to Sequence alignment problem.

      This Motif Finding Problem can be solved my several techniques as listed below.

1.     Exhaustive Search Method.
2.     Randomized Algorithms.
3.     Greedy Algorithms.

            Exhaustive Search Method analysis the complete sequence of billions of input combinations. Even   today’s modern advanced pipelined Microprocessor chip like Pentium IV cannot solve it with reasonable execution time. But analyzing all possible sequence of input is only the true method for finding the solution for Motif Finding problem. Here I will provide programs in C language to solve Motif Finding Problem using Exhaustive Search method.

         Randomized algorithms are based on probability Theory. Randomized algorithms are often used in hard problems like Motif Finding where an exact, Polynomial-time algorithm is not known.

             The Greedy Method tries to solve Motif Finding Problem by taking inputs and producing outputs that should satisfies some constraints. Any output that satisfies these constrains is called a feasible solution. We have to find a feasible solution that either maximizing or minimizing a given objective function. In our case the feasible solution should be maximized. A feasible solution that does this is called an optimal solution.

               Here I am trying to find the best solution for Motif Finding Problem that should lead me to obtain Nobel Price within my lifetime. The techniques like Exhaustive Search, Randomized Algorithms and Greedy methods are only based on single Microprocessor based systems. That implies that the execution of these algorithms is confined in to a centralized single Microprocessor based systems.

                My Aim and objective is to discover a machine model that should have multiple Microprocessors capable of solving our Motif Finding Problems. So we have to think about distributed computing. A distributed system is one that runs on a collection of machines that do not have shared memory, but still seems to be a single computer. This architecture provides as a fantastic solution for our Motif Finding problem that has billions of inputs which has to be processed.

              Nowadays Distributed computing can be implemented using Variety of ways. The three tier architecture models like Remote Method Invocation (RMI) from Sun Micro Systems Common Object Request Broker Architecture (CORBA) from Object Management Group (OMG), and Distributed Component Object Model (DCOM) from Microsoft are very much related to Distributed Computing. In My study I am planning to analysis about the solution pathways that are based on RMI technology.








A Study on Bioinformatics Algorithms: Introduction


      DNA is a polymer and it can be considered as a macromolecule responsible for Cell automation and Cell replication. It is a blueprint that contains smaller units named as Nucleotides that make up the DNA. The human genetic material consists of 3 billion nucleotides, assembled into 23 sets called chromosomes. These 3 billion nucleotides are stored in the databases called Nucleotide sequence databases.

      1. DDBJ          (DNA Data bank of Japan)
      2. NCBI           (National Center for Biotechnology Information)
      3. EMBL         (European Molecular Biology laboratory)

   The main operation that is performed upon these databases is searching a sequence (using query sequence). The search programs like BLAST and FASTA are used for this purpose.

    How did these programs were designed and implemented? Who did write these programs? As a BioInformatics scientist, can we write these programs? These are the questions that will be analyzed and answered under this topic.

  Moreover we will study what are the different types of BioInformatics algorithms available. The following are the very few type of BioInformatics algorithms.

               Exhaustive Search Algorithms
              Greedy Algorithms
              Dynamic Programming Algorithms
              Divide and Conquer Algorithms
              Graph Algorithms
              Randomized Algorithms
              Combinational pattern matching Algorithms
              Hidden Markov Models and so on

   In the same way we have to solve different types of BioInformatics problems in Bioinformatics. Few of the problems are listed below.

             DNA sequencing
             DNA Mapping
             Predicting Genes
             Comparing Genes
             Genome Rearrangements and so on

   Applying a particular type of algorithm to a Bioinformatics problem is based on the nature of the problem. Exhaustive search algorithms are used for Mapping DNA and finding signals. Greedy algorithms are more suitable for Genome Rearrangements. Divide and Conquer algorithms are solving Comparing Sequence Problems.

    We may wonder that as a biologist why should we learn algorithms, which are intended for computer science. The answer is straightforward. The convergence of Biology and computer science is called as BIOINFORMATICS. To be a real Biologist we have to acquire skills in Biology as well as in computer science. Biological skills include Cell life cycle, double helix structure of DNA, Transcription, and Translation and down the line. In Computer Science, we should learn about how to write efficient computer program for solving BioInformatics problems. In this point I like to remember that one of the man (Crick) who finds the DNA double Helix structure is not a Biologist but he is a physicist.

  Study of BioInformatics algorithms needs more mathematical knowledge than biological skills. By acquiring sufficient skills in Biology, Computer Science and Mathematics, we will become a “True Biologist”.





A Study on Bioinformatics Algorithms: Synopsis



    This dissertation “A Study on BioInformatics Algorithms” analysis the situations, which may lead us and drive towards the Best solution for Motif Finding Problems. So far, we do not find any best method for this problem. Exhaustive Search Method is the only perfect solution for the about problem. But the time taken for execution of this algorithm is not optimal.

        The Other algorithmic approaches like Randomized algorithms and Greedy Methods provides only partial and feasible solutions to this problem. More over the software that implements this algorithm for this problem are based on Single Processor System. This is like, “A Ghost counting the sand on the seashore”.  To bring effective solution, we need an array of Microprocessors that should be employed with the help of the Distributed Operating System. Since Distributed Computing is an emerging trend in the Field of Computer Science, We do not have any standardized OS on this area.

    Java language from Sun Microsystems provides the solution through its proprietary protocol   named as Remote Method Invocation (RMI). This technology is coming under Distributed Computing, where ‘N’ numbers of Microprocessors like Intel Pentium IV are utilized to solve this problem that has large set of input values. Here I prescribe the solution through this Distributed Computing based RMI technology.


Java Swing Example Program 5

//Java Swing Example Program 5

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ButtonEvent1 implements ActionListener{
private JFrame f;
private JButton b1,b2;
private JTextField jtf;

public ButtonEvent1(){
f    = new JFrame("Button Event");
b1 = new JButton("yes");
b2 = new JButton("no");
jtf  = new JTextField(20);
}

public void dispFrame(){
f.setLayout(new FlowLayout(FlowLayout.CENTER));
b1.addActi;onListener(this);
b2.addActionListener(this);
f.add(b1);
f.add(b2);
f.add(jtf);
f.setVisible(true);
f.setSize(300,300);
}

public void actionPerformed(ActionEvent ae){
String s=ae.getActionCommand();
if(s.equals("yes"))
jtf.setText("You pressed Yes");
if(s.equals("no"))
jtf.setText("You pressed No");
}


public static void main(String arg[]){
ButtonEvent1 bevent = new ButtonEvent1();
bevent.dispFrame();
}
}

Java Swing Example Program 4

//Java Swing Example Program 4

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class ListEvent implements ListSelectionListener{
private JFrame f;
private JList l;
private JTextField jtf;
private String c[] ={"chennai","Trichy","Kovi"};

public ListEvent(){
f    = new JFrame("Button Event");
l = new JList(c);
jtf  = new JTextField(20);
}

public void dispFrame(){
f.setLayout(new FlowLayout(FlowLayout.CENTER));
l.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
l.addListSelectionListener(this);
f.add(l);
f.add(jtf);
f.setVisible(true);
f.setSize(300,300);
}

public void valueChanged(ListSelectionEvent ee){
int idx = l.getSelectedIndex();
jtf.setText(c[idx]);
}




public static void main(String arg[]){
ListEvent levent = new ListEvent();
levent.dispFrame();
}
}


Java Swing Example Program 3

//Java Swing Example Program 3

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MouseActions implements MouseListener,MouseMotionListener {
//declare variable
private JFrame f;
private JTextField tf;

public MouseActions(){
f = new JFrame("MouseFrame");
tf = new JTextField(15);
}

public void dispFrame(){
f.setLayout(new FlowLayout(FlowLayout.CENTER));
f.addMouseListener(this);
f.addMouseMotionListener(this);
f.add(tf);
f.setVisible(true);
}
public void mousePressed(MouseEvent e){
tf.setText("MousePressed");
try{
Thread.sleep(500);
}catch(Exception eq){}
}
public void mouseReleased(MouseEvent e){}
public void mouseClicked(MouseEvent e){tf.setText("Mouse Clicked");}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseDragged(MouseEvent e){
tf.setText("Mouse Dragged");
}
public void mouseMoved(MouseEvent e){}

public static void main(String arg[]){
MouseActions mevent = new MouseActions();
mevent.dispFrame();
}
}


Java Swing Example Program 2

//Java swing Example Program 2

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;



public class MyMenu implements ActionListener{

JFrame jf;
JMenuBar mb;
JMenu m1,m2;
JMenuItem mi1,mi2,mi3,mi4;
JTextField jtf;


public MyMenu(){
jf = new JFrame("Menu  Example");
mb = new JMenuBar();
m1 = new JMenu("File");
m2 = new JMenu("Edit");
mi1 = new JMenuItem("Save");
mi2 = new JMenuItem("Exit");
mi3 = new JMenuItem("cut");
mi4=  new JMenuItem("Copy");
jtf = new JTextField(20);
}

public void display(){
m1.add(mi1);
m1.add(mi2);
m2.add(mi3);
m2.add(mi4);
mb.add(m1);
mb.add(m2);
mi1.addActionListener(this);
mi2.addActionListener(this);
mi3.addActionListener(this);
mi4.addActionListener(this);
jf.setJMenuBar(mb);
jf.add(jtf);
jf.setVisible(true);
jf.setSize(300,300);
}

public void actionPerformed(ActionEvent e){
jtf.setText(e.getActionCommand());
}

public static void main(String arg[]){
MyMenu mm = new MyMenu();
mm.display();
}
}

Java Swing Example Program 1

//Java swing Example Program 1

import java.awt.*;
import javax.swing.*;

public class Scompon{
private JFrame f;
private JButton b;
private JLabel l1,l2;
private JTextField tf1,tf2;
private JRadioButton rb;
private JCheckBox cb;
private JComboBox comb;
private JTable jt;



public Scompon(){
f = new JFrame("JComponents Demo");
b = new JButton("Button1");
l1 =  new JLabel("Enter Your name");
l2 = new JLabel("enter Your no");
tf1 = new JTextField(20);
tf2 = new JTextField(20);


rb = new JRadioButton("C++");
cb = new JCheckBox("Java");
comb = new JComboBox();
comb.addItem("India");
comb.addItem("pak");
comb.addItem("USA");
String d[][]={{"sun","sunmicrosys","bangalore"},{"mic","microsoft","chennai"}};
String h[]={"key","value","place"};
jt = new JTable(d,h);

}

public void dispFrame(){
f.setLayout(new FlowLayout());
f.add(l1);
f.add(tf1);
f.add(l2);
f.add(tf2);
f.add(b);
f.add(rb);
f.add(cb);
f.add(comb);
f.add(jt);





f.pack();
f.setVisible(true);
}





public static void main(String  arg[]){
Scompon e = new Scompon();
e.dispFrame();
}
}

RMI Java program 3

// RMI interface declaration Hello

    import java.rmi.Remote;
    import java.rmi.RemoteException;

    public interface Hello extends Remote {
void  sayHello(StringBuffer s) throws RemoteException;
    }


----------------------------------------------------------

//RMI Simple Server

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class HelloImpl extends UnicastRemoteObject implements Hello {

    public HelloImpl() throws RemoteException {
super();
    }

    public void sayHello(StringBuffer s) {
       s = s.append("fine");

    }


    public static void main(String args[]) {
try {
   HelloImpl obj = new HelloImpl();

   // Bind this object instance to the name "HelloServer"
   Naming.rebind("HelloServer", obj);

   System.out.println("HelloServer bound in registry");
} catch (Exception e) {
   System.out.println("HelloImpl err: " + e.getMessage());
   e.printStackTrace();
}
   }
}

-------------------------------------------------------------------


//RMI Simple client


import java.rmi.Naming;
import java.rmi.RemoteException;

public class HelloClient  {

    String message = "blank";
    Hello obj = null;

    public void display() {
        try {
            obj = (Hello)Naming.lookup("HelloServer");
   StringBuffer s = new StringBuffer("hello");
            obj.sayHello(s);
   System.out.println(s);
 
        } catch (Exception e) {
            System.out.println("HelloApplet exception: " + e.getMessage());
            e.printStackTrace();
        }
    }

    public static void main(String arg[]) {
        HelloClient  c = new HelloClient();
        c.display();
    }
}


RMI-JDBC Java program 2

// RMI  Interface declaration Hello

    import java.rmi.Remote;
    import java.rmi.RemoteException;

    public interface Hello extends Remote {
int insRec(String s0,String s1,String s2) throws RemoteException;
    }

-------------------------------------------------------------------------

//RMI Server connecting with JDBC-ODBC Driver

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.sql.*;
import java.util.*;

public class HelloImpl extends UnicastRemoteObject implements Hello {

    public HelloImpl() throws RemoteException {
super();
    }
int c_row=1;
int n_row =0;
ArrayList al;
    public ArrayList retRec(String sb) {
al=new ArrayList();
  try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         Connection   c =  DriverManager.getConnection("jdbc:odbc:mysql");
         Statement  st = c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
  ResultSet.CONCUR_UPDATABLE);
         ResultSet r = st.executeQuery("select * from limbs");
         String s =sb;
r.last();
n_row = r.getRow();
System.out.println("No of rows    : "+n_row);
System.out.println("current row    : "+c_row);


if(s.equals("First")){
c_row=1;
r.absolute(c_row);

  System.out.println("Current row is  "+c_row);
String th = r.getString(1);
                int le    = r.getInt(2);
              int ar  = r.getInt(3);
                                 
al.add(th);
al.add(new Integer(le));
al.add(new Integer(ar));
}


if(s.equals("Last")){
c_row = n_row;
r.absolute(c_row);
  System.out.println("Current row is  "+c_row);
String th = r.getString(1);
                int le    = r.getInt(2);
              int ar  = r.getInt(3);

tal.add(th);
al.add(new Integer(le));
al.add(new Integer(ar));
}


if(s.equals("Next")){
if(c_row <n_row){
 c_row = c_row +1;
 r.absolute(c_row);
   System.out.println("Current row is  "+c_row);
 String th = r.getString(1);
                 int le    = r.getInt(2);
               int ar  = r.getInt(3);
 al.add(th);
al.add(new Integer(le));
al.add(new Integer(ar));
}

}
if(s.equals("Previous")){
if(c_row >1){
c_row = c_row -1;
r.absolute(c_row);
System.out.println("Current row is  "+c_row);
String th = r.getString(1);
                int le    = r.getInt(2);
              int ar  = r.getInt(3);
al.add(th);
al.add(new Integer(le));
al.add(new Integer(ar));
}

}


r.close();
st.close();
c.close();

}catch(Exception ee){ee.printStackTrace();}


return al;

}


    }


    public static void main(String args[]) {
try {
   HelloImpl obj = new HelloImpl();

   // Bind this object instance to the name "HelloServer"
   Naming.rebind("HelloServer", obj);

   System.out.println("HelloServer bound in registry");
} catch (Exception e) {
   System.out.println("HelloImpl err: " + e.getMessage());
   e.printStackTrace();
}
   }
}
------------------------------------------------------------------

RMI Client



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.rmi.Naming;
import java.rmi.RemoteException;
class RmiJdbc implements ActionListener{
JLabel l1,l2,l3;
JButton b1,b2;
JTextField tf1,tf2,tf3;
JFrame f1;
RmiJdbc(){
l1=new JLabel("enter the things");
l2=new JLabel("no of legs");
l3=new JLabel("no of arms");
b1=new JButton("Submit");
b2=new JButton("Cancel");
tf1=new JTextField(15);
tf2=new JTextField(15);
tf3=new JTextField(15);
f1=new JFrame("Gui Demo");
}
public void display(){
b1.addActionListener(this);
b2.addActionListener(this);
f1.setLayout(new FlowLayout());
f1.add(l1);
f1.add(tf1);
f1.add(l2);
f1.add(tf2);
f1.add(l3);
f1.add(tf3);
f1.add(b1);
f1.add(b2);
f1.setSize(100,100);
f1.setVisible(true);
}


public void actionPerformed(ActionEvent e){
//creating rmi server connection
Hello obj=null;
int nrec=0;
try { 
            obj = (Hello)Naming.lookup("HelloServer"); 
           nrec= obj.insRec(tf1.getText(),tf2.getText(),tf3.getText()); 
   System.out.println(nrec);
        } catch (Exception ex) { 
            System.out.println("HelloApplet exception: " + ex.getMessage()); 
            ex.printStackTrace(); 
        } 

}
public static void main(String arg[]){
RmiJdbc gj1=new RmiJdbc();
gj1.display();
}
}

RMI-JDBC Java program 1

// RMI interface declaration Hello

    import java.rmi.Remote;
    import java.rmi.RemoteException;
    import java.util.*;

    public interface Hello extends Remote {
ArrayList retRec(String s) throws RemoteException;
    }
---------------------------------------------------

//RMI Server


import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.sql.*;
import java.util.*;

public class HelloImpl extends UnicastRemoteObject implements Hello {

    public HelloImpl() throws RemoteException {
super();
    }
int c_row=1;
int n_row =0;
ArrayList al;
    public ArrayList retRec(String sb) {
al=new ArrayList();
  try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         Connection   c =  DriverManager.getConnection("jdbc:odbc:mysql");
         Statement  st = c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
  ResultSet.CONCUR_UPDATABLE);
         ResultSet r = st.executeQuery("select * from limbs");
         String s =sb;
r.last();
n_row = r.getRow();
System.out.println("No of rows    : "+n_row);
System.out.println("current row    : "+c_row);


if(s.equals("First")){
c_row=1;
r.absolute(c_row);

  System.out.println("Current row is  "+c_row);
String th = r.getString(1);
                int le    = r.getInt(2);
              int ar  = r.getInt(3);
                                 
al.add(th);
al.add(new Integer(le));
al.add(new Integer(ar));
}


if(s.equals("Last")){
c_row = n_row;
r.absolute(c_row);
  System.out.println("Current row is  "+c_row);
String th = r.getString(1);
                int le    = r.getInt(2);
              int ar  = r.getInt(3);

al.add(th);
al.add(new Integer(le));
al.add(new Integer(ar));
}


if(s.equals("Next")){
if(c_row <n_row){
 c_row = c_row +1;
 r.absolute(c_row);
   System.out.println("Current row is  "+c_row);
 String th = r.getString(1);
                 int le    = r.getInt(2);
               int ar  = r.getInt(3);
 al.add(th);
al.add(new Integer(le));
al.add(new Integer(ar));
}

}
if(s.equals("Previous")){
if(c_row >1){
c_row = c_row -1;
r.absolute(c_row);
System.out.println("Current row is  "+c_row);
String th = r.getString(1);
                int le    = r.getInt(2);
              int ar  = r.getInt(3);
al.add(th);
al.add(new Integer(le));
al.add(new Integer(ar));
}

}


r.close();
st.close();
c.close();

}catch(Exception ee){ee.printStackTrace();}


return al;

}

    public static void main(String args[]) {
try {
   HelloImpl obj = new HelloImpl();

   // Bind this object instance to the name "HelloServer"
   Naming.rebind("HelloServer", obj);

   System.out.println("HelloServer bound in registry");
} catch (Exception e) {
   System.out.println("HelloImpl err: " + e.getMessage());
   e.printStackTrace();
}
   }
}

--------------------------------------------------


//RMI GUI client


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
import java.rmi.Naming;
import java.rmi.RemoteException;
class GuiJdbc1 implements ActionListener{

JLabel l1,l2,l3;
JButton b1,b2,b3,b4;
JTextField tf1,tf2,tf3;
JFrame f1;
int c_row=1;
int n_row =0;
Hello obj=null;
GuiJdbc1(){
l1=new JLabel("enter the things");
l2=new JLabel("no of legs");
l3=new JLabel("no of arms");

b1=new JButton("First");
b2=new JButton("Last");
b3=new JButton("Next");
b4=new JButton("Previous");
tf1=new JTextField(15);
tf2=new JTextField(15);
tf3=new JTextField(15);
f1=new JFrame("Gui Demo");
}
public void display(){
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);

f1.setLayout(new FlowLayout());
f1.add(l1);
f1.add(tf1);
f1.add(l2);
f1.add(tf2);
f1.add(l3);
f1.add(tf3);

f1.add(b1);
f1.add(b2);
f1.add(b3);
f1.add(b4);

f1.setSize(300,300);
f1.setVisible(true);
}


public void actionPerformed(ActionEvent e){
String s=e.getActionCommand();
ArrayList al;
try {
            obj = (Hello)Naming.lookup("HelloServer");
            al = obj.retRec(s);
tf1.setText(""+(String)al.get(0));
tf2.setText(""+(Integer)al.get(1));
tf3.setText(""+(Integer)al.get(2));
        } catch (Exception ex) {
            System.out.println("HelloApplet exception: " + ex.getMessage());
            ex.printStackTrace();
        }



}
public static void main(String arg[]){
GuiJdbc1 gj2=new GuiJdbc1();
gj2.display();
}
}
----------------------------------------------------------------