Tuesday, December 7, 2010

signing apk to publish in android app store using keytool and jarsigner

To publish an android application in android market, we need to sign it using jarsigner.

Signing the apk file is very easy, we need to sign for at least 50yrs to publish in android market.

Follow the simple steps to do it.

Step 1:
Create a folder named "keytools" and make a sub folder in that called "keys".

Step 2:
In Eclipse Package Exp window, right click on your project and select Android Tools -> Exports Unsigned Application Package and Save in keytools folder.

Step 3:
Go to your java jdk folder and check jarsigner and keytools is available or not. Path is something like following "C:\Program Files\Java\jdk1.6.0_18\bin"

The the jarsigner and keytools are not available, its not possible to sign the application. Download the files from net and put it in bin.

Step 4:
Open the CMD and navigate to your "keytools" folder. Now the "keytools" folder will be containing .apk file and keys folder.

type the following in your CMD
C:\"Program Files"\Java\jdk1.6.0_18\bin\keytool -genkey -alias myapp.keystore -keyalg RSA -validity 20000 -keystore keys/myapp.keystore

and press enter

Enter keystore password: "SECRET PASSWORD"
Re-enter new password: "SECRET PASSWORD"
What is your first and last name? "Abbas"
What is the name of your Organization unit? "Mobileveda"
What is the name of your Organization? "eMahatva private Limited"
What is the name of your city or locality? "Coimbatore"
What is the name of your state or providence? "TamilNadu"
what is the two-letter country code for this unit? "IN"
is CN=Abbas C=IN correct?
"YES"
Enter key password for
: (press enter button)

Following things may change
1) jdk1.6.0_18 -> your jdk folder name
2) myapp -> your application name.
3) 20000 is number of dates
4) Personal information.

STEP 6:

type the following in CMD

C:\"Program Files"\Java\jdk1.6.0_18\bin\jarsigner -verbose -keystore keys/myapp.keystore -signedjar myapp_signed.apk myapp.apk my.keystore

Enter Passphase for keystore: "Enter your password previously given"
adding: META-INF/MINFEST.MF
.
.
.
.
Signing: classes.dex

Thats it.

Check your keystore folder.

Thanks.

Wednesday, November 24, 2010

Changing ListView seperator and selection color - Android

1) How to change listview separator color and selection color?

use the following in your listview

android:id="@+id/homeListView"
android:drawSelectorOnTop="false"
android:listSelector="@drawable/rollover_singleline"
android:divider="#ffebb5"
android:dividerHeight="1px"
android:paddingTop="50dip"
android:layout_width="fill_parent"
android:layout_height="fill_parent">




Thanks.

Monday, November 15, 2010

Android - Passing Data between Activity

Hi

You can pass the data between Activity using Bundle in Android.

To launch an activity we use to create an intent. using the intent object we can pass the data

For Example

Intent i = new Intent(this, InvokedIntent.class);
i.putExtra("floatValue", 5.0f);
i.putExtra("StringValue", "baz");
startActivity(i);

floatvalues and stringvalues are user defined keyword, In the InvokedIntent class we use this keyword to retrieve the value. Similarly we can add multiple entries here.

To read the passed value, Inside the InvokedActivity Class

Bundle extras = getIntent().getExtras();
if(extras !=null)
{
float foo = extras.getFloat("floatValue");
String bar = extras.getString("StringValue");
}

That's it.

Check: http://developer.android.com/reference/android/os/Bundle.html

Thanks.

Sunday, November 14, 2010

Creating custom font - J2me

Hi..

Please check the following post from forum.nokia.com

http://discussion.forum.nokia.com/forum/showthread.php?122363-Custom-font&p=531131#post531131

Or check the following.

1: Draw Your Font

Lay the characters out in a grid. Don't put them in one long, thin strip, as some devices have problems with images that have one, very large dimension.

To simplify things, each cell of the grid is the same size.

Your image should look something like:
Code:
1234567890!" '
*()-.,:/ABCDEF
GHIJKLMNOPQRST
UVWXYZabcdefgh
ijklmnopqrstuv
wxyzАБВГДЕЁЖЗИ
ЙКЛМНОПРСТУФХЦ
ЧШЩЪЫЬЭЮЯабвгд
еёжзийклмнопрс
туфхцчшщъыьэюя

Make sure the background is transparent. Use 8-bit PNG format for best compatibility across devices.

Note that I've left a space (between the " and ' on the top row). You can have separate code later to handle the space as a special condition, but this is easier.

2: Defining the Font Parameters
A string holds a list of characters, in the order that they appear in the image. Use unicode escapes for non-ASCII characters, or someone in another country (with a different character encoding) will get different results.

This information should really be loaded from some kind of font definition file, but for this example, they'll go in the code.
Code:
private static int CELL_WIDTH = 12;
private static int CELL_HEIGHT = 16;

private static String sequence = "1234567890!\" '*()-.,:/"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "\u0410\u0411\u0412\u0413\u0414\u0415\u0401\u0416"
+ "\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E"
+ "\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426"
+ "\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E"
+ "\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0451"
+ "\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D"
+ "\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445"
+ "\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F";

private static Image fontImage;
private static int width;
private static int height;
private static int charsPerRow;

public static void inialise(String fontname) throws IOException {
fontImage = Image.createImage(fontname);
width = fontimage.getWidth();
height = fontimage.getHeight();
charsPerRow = width / CELL_WIDTH;
}

Above concept wont work for Indian languages and CJK, because of different character width. So please form a png grid and have a width of each characters in a separate array to cut the images.

3. Drawing a Character

Using setClip(), you can draw any character you like.

I've made this code throw an exception if the characters is not in the font, so you know quickly if you have a missing character. For a production build, you might prefer to draw some place-holder character instead.
Code:
/** @return width of the character */
private static int drawChar(Graphics g, char ch, int x, int y) {
// find the position in the font
int i = sequence.indexOf(ch);
if (i == -1) {
throw new IllegalArgumentException("unsupported character");
}

// find that character in the image
int cx = (i % charsPerRow) * CELL_WIDTH;
int cy = (i / charsPerRow) * CELL_HEIGHT;

// draw it
g.setClip(x, y, CELL_WIDTH, CELL_HEIGHT);
g.drawImage(fontimage, x - cx, y - cy, Graphics.TOP | Graphics.LEFT);

return CELL_WIDTH;
}

4. Drawing a String

Once you can draw a character, you can draw a string.
Code:
private static void drawString(Graphics g, String s, int x, int y) {
// this is faster than using s.charAt()
char[] chs = s.toCharArray();
for (int i = 0; i < chs.length; i++) {
x += drawChar(g, chs[i], x, y);
}
}
5. Improvements

This, of course, will only handle a fixed-width font. Support a proportional-width font is just a matter of adding an array of character widths. The last line of drawChar() then becomes:
Code:
return characterWidth[i];
This implementation also changes the current clip region, which is different behaviour from the API implementation of Graphics.drawString().

Saving the clip region is a simple matter of:
Code:
int clipX = g.getClipX();
int clipY = g.getClipY();
int clipW = g.getClipWidth();
int clipH = g.getClipHeight();
And restoring it:
Code:
g.setClip(clipX, clipY, clipW, clipH);

Above improvements help to bring Indian languages Font like Hindi, Tamil, Telugu, Malayalam, Gujarati, Bengali etc

Thanks.

Wednesday, November 10, 2010

Thirukural On Blackberry App Store

Mobileveda has launched the Thirukural application with all 1330 Tamil couplets with their meanings organized in 133 chapters for all Blackberry Models.

The application is yet another tribute from MobileVeda to Tamil Language and it's people.The application has easy chapter navigation and GOTO kural option.

The application is light and comes with configurable display options.

Download and cherish the Rhymes of all time worth Thirukural.

To Download the Thirukural on BlackBerry, go to Blackberry App store.

Also check out

http://appworld.blackberry.com/webstore/content/18238?lang=en

ckeck out this video



Thanks.

Monday, November 8, 2010

custom font library for j2me

MvFont Library supports custom font support.

http://abbasmca.blogspot.com/2010/11/mvfont-library-for-indian-language-in.html

Tuesday, November 2, 2010

MvFont Library for Indian Language in j2me canvas and LWUIT

MvFont library is a bitmap font library to display Indian languages in j2me mobiles. Developer can use this library and develope application in regional Language.

As of now MvFont library supports Hindi, Marathi, Tamil, Telugu, Malayalam, Gujarathi and Bengali.

This library can used with canvas based application , third party j2me UI libraries like LWUIT,J4ME ect and Also we can easily embed it with propraitry UI library very easily.

Monday, August 30, 2010

association, aggregation and composition in oops with real world examples

Association:
This is relation where each object has it own life cycle , independent and no owner.
Ex:-
1) Will take a common example of project and developer. A project will be having multiple developers and developer can work for different projects. There is a relationship but both are independent. Both can create and delete independently.

2) Let’s take an another example of Teacher and Student. Multiple students can associate with single teacher and single student can associate with multiple teachers but there is no ownership between the objects and both have their own lifecycle. Both can create and delete independently.


Aggregation:
This is a specialize form of Association where all object have their own lifecycle has ownership on child object and the child object cannot belongs be related to another parent object.

Ex:-
1) Will take an example of Departments and developers. A developer can be only in one department like dotnet, java etc., but if we delete the Department object still the Developer object exists. This is a “Has- a” relation.
2) Let’s take an example of Department and teacher. A single teacher can not belongs to multiple departments, but if we delete the department teacher object will not destroy. We can think about “has-a” relationship.

Composition:

This is specialize form of Aggregation and can be called as strong Aggregations
Where the child object has no life if the parent object is deleted, because of this we call this as “death” relationship.

Ex:-
Best example is House and room. A house can have multiple rooms but if we delete the house the child i.e. rooms will also be deleted and has no life.

Monday, July 12, 2010

Advantages of Motorala Droid X

Motorola Droid X is set to be released on July 15. The feature-rich phone has multiple advantages over iPhone 4. We have listed the detailed technical specs of Motorola Droid X which may help if someone cannot decide between iPhone 4 and Droid X.

Droid X, which has bigger screen, is being manufactured by Motorola and it has Android 2.1 with Motoblur Operating System installed out of box. However Verizon has already announced that it will push the latest version of Google OS, Android 2.2, after the phone’s release date. Droid X has 1GHz CPU speed which is more than sufficient for any modern smart-phone. The RAM size of Droid X is not known however, some claims that it has 512MB. The device, which weighs 5.4 ounces, has software keyboard with SWPPE which makes typing much faster as compared to other software keyboards. Droid X has high standard 8 mega-pixel camera with the support the Dual LED Flash. The battery life is the biggest advantage of Droid X as compared to iPhone 4 or HTC EVO 4G because its talk time is 8 hours.

Tuesday, May 25, 2010

Friday, March 26, 2010

System Development Life Cycle

To develop small application, software development consisted of a programmer writing code to solve a problem or automate a procedure. But now,the systems are so big and complex that teams of architects, analysts, programmers, testers and users must work together to create the millions of lines of custom-written code to develop a software.But it we be good even if we follow SDLC for small application development.

To manage this, a number of system development life cycle (SDLC) models have been created: waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, and synchronize and stabilize.

The image below is the classic Waterfall model methodology, which is the first SDLC method and it describes the various phases involved in development.


Briefly on different Phases:

Project planning, feasibility study:
The feasibility study is used to determine if the project should get the go-ahead. If the project is to proceed, the feasibility study will produce a project plan and budget estimates for the future stages of development.


Systems analysis, requirements definition:
Analysis gathers the requirements for the system. This stage includes a detailed study of the business needs of the organization. Options for changing the business process may be considered. Design focuses on high level design like, what programs are needed and how are they going to interact, low-level design (how the individual programs are going to work), interface design (what are the interfaces going to look like) and data design (what data will be required). During these phases, the software's overall structure is defined. Analysis and Design are very crucial in the whole development cycle. Any glitch in the design phase could be very expensive to solve in the later stage of the software development. Much care is taken during this phase. The logical system of the product is developed in this phase.

Implementation
In this phase the designs are translated into code. "My area :).." C,C++,Java,.net etc are used here only.

Testing
In this phase the system is tested. Hope you know about following testings,
Unit Testing where individual modules are tested,Integration Testing where individual modules brought to gather and tested,alpha testing and beta testing etc.


Maintenance
Inevitably the system will need maintenance. Software will definitely undergo change once it is delivered to the customer. change is really inevitable. so we need Maintenance . "Most of the people(developers) working in big companies will work in this phase only. AFAIK they wont develop from the core, They maintain the existing delivered software."


But Waterfall Doesn't Work!

The waterfall model is well understood, but it's not as useful as it once was. "it works very well when we are automating the activities of clerks and accountants. It doesn't work nearly as well, if at all, when building systems for knowledge workers people at help desks, experts trying to solve problems, or executives trying to lead their company into the Fortune 100."

Another problem is that the waterfall model assumes that the only role for users is in specifying requirements, and that all requirements can be specified in advance Unfortunately, requirements grow and change throughout the process and beyond, calling for considerable feedback and iterative consultation. Thus many other SDLC models have been developed.

Anyhow waterfall is to understand the SDLC , and other models are based on it.

Finally a video : http://www.youtube.com/watch?v=OfgfnZZdMlI&feature=channel

***
Here i'm share what i learned about SLDC.Will see more about the SDLC in future posts.I'm going to concentrate on this area.
***

I hereby declare that all the above information are stolen from various site and altered.

Thursday, March 25, 2010

Tips to develop Good Mobile Application

There are many mobile applications available now days, most of them are free. Some vendors give sharewares and adware apps – but the functionality makes them good to try at-least once. Mobile applications are also becoming one of the important download – with themes, ringtones and wall papers. Here, let’s discuss about 5 basic requirements for any good mobile application.

1. Platform: All mobile phones are not using same operational platform. Choose the platform, which is used by many mobile phones – consider the level of target users too. J2ME / Java based applications are one example – It works on many Nokia, LG and Samsung devices – and these devices are dominating the Indian mobile device market for long time. Developing a J2ME based app, increases the download opportunities by the users of these devices.
2. Purpose of App: Have a clean scope about the purpose of the application. It can be a simple game, Business productivity app or Device level Utility – better have a clean scope about what it is all about. Find the category of App and try to see – what can make the user give priority to your application.
3. HELP: Many Mobile apps are not having a good help section – this makes user avoid such apps. A help can be a simple section with application intro, keys information, and version information. A link to your detail help web-site is also a good idea.
4. Simple Keys: The less keys – the more advantage. Try to create functions for most common keys – and I suggest matching with the default device keys. You can have different builds for different devices. The user should feel comfort in handling your app – it makes him use it frequently.
5. Web-Site: Have a small website with Basic and advance download information, supporting devices lists, contact information, Issue posting- tracking-responses section, Build version information etc. It gives the user a confident about using this app with trust on your effort.

The above listed are only the basic requirements, there are a lot more to do. Try developing your apps, promoting them, and sharing your experiences. It helps to many community developers around us.

Thanks.

www.siliconindia.com

Wednesday, March 10, 2010

How to install jar file in 3110 classic and 6300?

Installing Jar file in 3110c and 6300 is really very easy. There is no installation step and all.. So First you can

* Download the Jar from the web onto your PC, then upload onto your phone. or
* Install directly Over The Air (OTA) via WAP

First I Assume that you are downloaded Jar and Jad file from web to your Personal Computer(PC).

Jad file is Not Necessary.

Step 1 : Transferring the Jar to Mobile:

You can transfer in Following ways

1)Via Bluetooth.
For this you need Bluetooth Dongle and Bluetooth software. There are some latest bluetooth dongle which contain inbuilt driver software.

Once you installed the dongle and found bluetooth icon in quick launch mean, you can right click the jar and choose send via Bluetooth and transfer to Mobile

2)Using DataCable.
Connect the mobile with PC using Data cable and transfer the Jar to mobile.

3)Using CardReader:
Remove the memory card from the mobile and insert it in Datacard. plug the Datacard in PC and transfer the file.


Step 2: The installation

No installation of Jar in 3110Classc and 6300.So you can directly open the jar file you transferred to your Mobile.

You can found your applications inside Menu-> Application.

Now you can Enjoy using the Java Application on Mobile.

Tuesday, March 9, 2010

How to install jar file in 3110 classic?

Installing Jar file in 3110c is really very easy. There is no installation step and all.. So First you can

* Download the Jar from the web onto your PC, then upload onto your phone. or
* Install directly Over The Air (OTA) via WAP

First I Assume that you are downloaded Jar and Jad file from web to your Personal Computer(PC).

Jad file is Not Necessary.

Step 1 : Transferring the Jar to Mobile:

You can transfer in Following ways

1)Via Bluetooth.
For this you need Bluetooth Dongle and Bluetooth software. There are some latest bluetooth dongle which contain inbuilt driver software.

Once you installed the dongle and found bluetooth icon in quick launch mean, you can right click the jar and choose send via Bluetooth and transfer to Mobile

2)Using DataCable.
Connect the mobile with PC using Data cable and transfer the Jar to mobile.

3)Using CardReader:
Remove the memory card from the mobile and insert it in Datacard. plug the Datacard in PC and transfer the file.


Step 2: The installation


No installation of Jar in 3110Classc.So you can directly open the jar file you transferred to your Mobile.

Now you can Enjoy using the Java Application on Mobile.

Monday, March 8, 2010

What is torrent and Advantage of torrents download

What is a torrent?
Torrent is a small file (around few kilobytes) with the suffix .torrent, which contains all the information needed to download a file the torrent was made for. That means it contains file names, their sizes, where to download from and so on. You can get torrents for almost anything on lots of web sites and torrent search engines.
Torrent is the most popular way of downloading large files, including movies and games (remember legality of downloading)

* torrent is a file
* with torrents you can download almost everything on the net
* every file (or set of files) need to have an unique torrent file to download it
* to download anything through a torrent you need a torrent client

Why we need torrents and what is the Advantage of torrents download?

Downloading with a torrent is advantageous especially when downloading files, which are momentarily very popular and which lots of people are downloading. Because the more people download the file, the higher speed for everyone.

You probably already tried another ways of p2p sharing - torrent is just another method. The original BitTorrent client was written in Python and it has been made open-source.

To know How to download the torrent file in windows xp see

http://abbasmca.blogspot.com/2010/03/how-to-download-torrents-in-xp.html

Java Coupling and cohesion Differences with Example

"Object-oriented programming has two main objectives: to build highly cohesive classes and to maintain loose coupling between those classes. High-cohesion means well-structured classes and loose coupling means more flexible, extensible software."

"Cohesive means that a certain class performs a set of closely related actions. A lack of cohesion, on the other hand, means that a class is performing several unrelated tasks. Though lack of cohesion may never have an impact on the overall functionality of a particular class or of the application itself the application software will eventually become unmanageable as more and more behaviours become scattered and end up in wrong places."

"Whenever one object interacts with another object, that is a coupling. In reality, what you need to try to minimise is coupling factors. Strong coupling means that one object is strongly coupled with the implementation details of another object. Strong coupling is discouraged because it results in less flexible, less scalable application software. However, coupling can be used so that it enables objects to talk to each other while also preserving the scalability and flexibility."

"In OO programming, coupling is unavoidable. Therefore, the goal is to reduce unnecessary dependencies and make necessary dependencies coherent."


Example :

Coupling is the unnecessary dependance of one component upon another
component's implementation. An example would be if you had a Dog class
that should be able to bark and jump. You could write it like this:

class Dog
{
void doAction(int number)
{
if(number==1)
//Jump code goes here
if(number==2)
//Bark code goes here
}
}

However, this way whoever used your class would have to follow your
convention that doAction(1) means jump and doAction(2) means bark. A
less-coupled way would be to write separate bark() and jump() methods.

Cohesion occurs when components are wired together in a smart, logical
way. If you have ever used a Controller class, that's a great example
of acheiving cohesion. Highly cohesive components interact with each
other semantically, in other words, they tell each other what they want
to do. In a bank example, an ATM object should be able to tell an
Account object to getBalance(), or withdrawFunds(), etc. These are
sensible ways for the ATM and Account to interact, not specific ways
that are only useful in one program.

So good OOD requires that components can interact powerfully, but
independently of eachother's implementation details. (Think of
System.out.println() - most people have no idea how that works, but
when you want to output some text, you can just use the method.)

Encapsulation is the use of hiding implementation details within your
code. Changing the above Dog code from doAction() to jump() and bark()
would be a step toward good encapsulation. This is getting
frighteningly nerdy, but I think you could say "A program with high
cohesion and low coupling exhibits good encapsulation". In other words,
encapsulation is the goal you're trying to reach when you reduce
coupling. A class with good encapsulation, in turn, lends it self to
being a cohesive part of a system.

Ref:
http://www.velocityreviews.com

Thursday, March 4, 2010

Management Lesson stories

* Lesson Number One *

A crow was sitting on a tree, doing nothing all day. A small rabbit saw the crow, and asked him, "Can I also sit like you and do nothing all day long?"

The crow answered: "Sure, why not."

So, the rabbit sat on the ground below the crow, and rested. All of a sudden, a fox appeared, jumped on the rabbit and ate it.

Management Lesson: To be sitting and doing nothing, you must be sitting very, very high up.


* Lesson Number Two *


A turkey was chatting with a bull.

"I would love to be able to get to the top of that tree," sighed the turkey, "but I haven't got the energy. "Well, why don't you nibble on some of my droppings?" replied the bull. "They're packed with nutrients."

The turkey pecked at a lump of dung and found that it actually gave him enough strength to reach the first branch of the tree. The next day, after eating some more dung, he reached the second branch. Finally after a fortnight, there he was proudly perched at the top of the tree. Soon he was promptly spotted by a farmer, who shot the turkey out of the tree.

Management Lesson: Bullshit might get you to the top, but it won't keep you there.


* Lesson Number Three *


When the body was first made, all the parts wanted to be Boss. The brain said, "I should be Boss because I control the whole body's responses and functions."

The feet said, "We should be Boss as we carry the brain about and get him to where he wants to go." The hands said, "We should be the Boss because we do all the work and earn all the money." And so it went on and on with the heart, the lungs and the eyes until finally the asshole spoke up.

All the parts laughed at the idea of the asshole being the Boss. So the asshole went on strike, blocked itself up and refused to work. Within a short time the eyes became crossed, the hands clenched, the feet twitched, the heart and lungs began to panic and the brain fevered. Eventually they all decided that the asshole should be the Boss, so the motion was passed.

All the other parts did all the work while the Boss just sat and passed out the sh*t!

Management Lesson: You don't need brains to be Boss, any asshole will do!


* Lesson Number Four *


A little bird was flying south for the winter. It was so cold, the bird froze and fell to the ground in a large field. While it was lying there, a cow came by and dropped some dung on it. As the frozen bird lay there in the pile of cow dung, it began to realize how warm it was. The dung was actually thawing him out!

He lay there all warm and happy, and soon began to sing for joy. A passing cat heard he bird singing and came to investigate. Following the sound, the cat discovered the bird under the pile of cow dung, and promptly dug him out and ate him!

Management Lessons Summary:

1. Not everyone who drops sh*t on you is your enemy.
2. Not everyone who gets you out of sh*t is your friend.
3. When you're in deep sh*t, keep your mouth shut!

Management Lesson|Coolpalz - Join it

How to Download Torrents in XP

  1. Find a torrent program that will suit your needs, the most common clients are BitTorrent.
  2. Follow the instructions on downloading and installing your chosen client.
  3. Go to a torrent site and search for a file you want to download.
  4. Once you have found the desired file on the torrent site, click the "Download This Torrent" (or however they word it). Usually, the web browser's file download manager will ask what to do with this file. You want to open the file with your torrent program.
  5. If it doesn't open that way, just save the .torrent file to an easy to locate place. Then open your torrent client and use the "Open Torrent" feature(Most torrent clients support click & drag).
  6. The download will start automatically. You may now go and do something to pass the time, because torrents do not require your attention and will download in the background.

How to Download Torrents: 6 steps - wikiHow

Saturday, January 30, 2010

How to apply for Pan Card?

Its really very easy.. Last weak only i applied.Go to any PAN CARD APPLIED CENTERS near to your location with Two passport size photograph, identity proof, residence proof and 94Rs cash.

To find
PAN CARD APPLIED CENTERS in TamilNadu go to http://helpdesk.ellamey.com/panservice.html

To find PAN CARD APPLIED CENTERS in India go to http://www.utitsl.co.in/utitsl/site/contacts.jsp

Thanks..