Sunday, September 26, 2010

My Stackoverflow Badge


Stack Overflow profile for vaibhav



This is my Stackoverflow badge. Stackoverflow, as most of you would be knowing, is a website part of the Stack Exchange Network featuring questions and answers on a wide range of topics in computer programming.
I have earned these many points asking questions and posting some quality answers on topics ranging from c/c++ programming, asp. net, Eclipse and Android.

* * * * *

Tuesday, September 7, 2010

My Project Euler Badge

Above is my Project Euler Badge. It shows my username and the number of questions I have solved. It keeps on changing dynamically.

* * * * *

Saturday, August 21, 2010

Getting started with Linux File System

via my friend Prateek Gupta ...

For those of you coming from windows background, the way the linux filesystem is laid out may seem confusing at first glance…. but that is where this article comes in !

The first thing you should know when working with linux, is that everything is treated as either a file or directory. Yep thats right, even hardware is considered a file by linux, and, speaking of hardware… all your hardware devices are located in the /dev directory, but more on that... later.

Another thing that confuses windows users, is the fact that linux dosen’t use drive letters to distinguish between different partitions and devices. that is to say in linux, the “root” of your filesystem is / whereas in windows it would most probably be C:\ . Drives in linux are “mounted” to directories where their data can then be accessed, so for instance, if you needed to use your thumbdrive, you would plug it into your computer, and then mount it using the “mount” command, which specifies the path to the device ( something like /dev/sdb or /dev/sdc ) and the directory to mount it to (usually /mnt or /media), then you can happily access your drive from the /mnt or /media folder.

Sounds strange right? well yes it does if you come from a windows environment, where the entire operating system is consolidated onto a single drive. However, with linux and the ability to mount devices as directories, it gives the end user much greater flexibility in splitting up their operating system over several drives or partitions.

To understand what I mean when I say that this approach in mounting drives grants flexibility, I must first explain the different folders in linux and what they store / this is the root folder, all other folders come under root.. think of it as C:\ in a Windows context.

/bin this folder contains all the user-essential binaries (programs) that are needed to administer and run your linux system… delete this folder and your system is broken.

/boot as the name suggests, this folder contains configuration files and other necessary files that are needed by the bootloader

/dev this folder contains device files (remember, these files represent physical devices, so be careful when working with them)

/etc this folder contains all the configuration files used by the system, you can also start and stop services (daemons ) from here

/home this folder contains the home folders of all the normal (non – root ) users on the system .. think of it as my documents in windows

/lib this folder contains software libraries

/media this is a mount point for removable devices… this is where you would usually mount your thumbdrives … etc

/mnt this is a temporary mount point

/opt this folder contains add on software (extra software)

/sbin this folder contains binaries that can only be run as the root user (”superuser”)

/tmp this folder contains temporary files that are erased upon reboot

/usr this folder and its subfolders contains user installed programs and utilities and libraries

/var this folder contains files that change alot (”Variable files”)

/root this folder contians the root user’s files

/proc this is a psuedo folder, that contains information about the linux kernel and hardware that is updated in realtime.

Now back to how mounting grants flexibility…

You see, how the different folders all contain parts of the operating system? Well we can actually mount a seperate hard drive for each of this folders. for example, your /home folder can be put on another harddrive than your / which means that you can easily recover your personal files if the harddrive on / fails because the harddrive mounted to your /home folder is seperate from the one that is mounted to your /

So there you have it, you now know a lttle bit more about the nuts and bolts of linux based operating systems.

* * * * *

Sunday, July 25, 2010

My Android Applications

During the summer internship I learned about interesting and innovative work of Android Application Development. I have already posted about getting started with it and some important links in my earlier posts. In this post I m going to discuss some of the applications I built.

Info Displayer:

Info displayer is a simple and light application. No doubt, it was my first app :). The application fetches some important information about your Android Device, such as, the device number, the hardware, the Manufacturer, Product, Model, Time etc. The application used "build" library and its functions to fetch the information.


Webber:

Webber claims to be the world's simplest browser. It just has a text box to write a URL and the view below it, which fetches the web-page. It doesn't allow the default browser to hinder its working. I used an EditText and a WebView to present this app. Other stuff was just a cake walk.



Sleek Feed:

Sleek Feed is an application that displays the feeds of the saved URL. The application parses the XML file, and gets the titles of the latest feeds and displays it onto the screen. The URL is feeded by the user himself through the admin panel. The main feature of the application is the fact that it saves the previous URL feeded in the admin panel.
To view its complete working see the video here on youtube.



One thing I learned while building these apps that "it's not knowledge, but it's innovation, that matters a lot while completing an entire project."

* * * * *

Thursday, July 15, 2010

Some useful links for building Android Apps

Working on Android Application Development I came across some very useful links that every Android App Developer must follow. Here is my "Delicious.com" account, you can look for all the bookmarks I have saved.
In this post I am recommending some of the important Android forums and websites. By this time you must obviously be familiar with the official Android Developer Website where you can find the entire documentation of the project. Do add yourself to the Android Google Group for asking all your queries. For hosting your applications access its Official Marketplace.
Besides these regular sites which everyone accesses, I m here to share some more websites that can help novice get started and go on further with the Android App development.

(Click the titles for opening the pages)..

Here's Lars Vogel with his tutorial for getting started with Android App Development. Besides getting started, it also teaches to build a hello world app, demonstrates how to build menus and work with preferences, a nice content provider example and how to make a file browser. At last it demonstrates how to deploy your app onto a real device.

This is one of my best recommendations. Some very nice demo projects are hosted on the site. Studying Motto Twitter project can help understand the concepts in depth. Certain API's have also been explained in the tutorials. The use of bluetooth and camera may become very clear refering to their API tutorials.

Nice tutorials by Nithin Warreir. The blog contains some code snippets that help during development of big projects. One can learn implementation of various tools of Android development easily here. I have even added the admin to my gmail contacts and regularly ask him to review my applications.

Anddev forum is pretty famous for having a large number of online users everytime. For any query you can easily post a question in this forum. Wait for the help that comes in just a few minutes. One can also use the android tag of Stackoverflow, but mind you, it's lame..!! Too slow responses and you'll end answering your own question later which doesn't contribute to the repo at all.. :P

Besides the Official Marketplace, this is another marketplace that hosts developer's applications. For registering as developer in the official marketplace, one needs to pay $25, here lies the advantage of joining SlideMe, it is free..!!
Register yourself and deploy all your apps. The apps may be free or paid. The paid apps can only be downloaded from Android Phone through SlideMe market app. The website asks for copies of your project's ".apk" file and forms an inventory and on downloads you need to generate an invoice to redeem the money. Here is link for viewing my apps.

Happy developing ;)

* * * * *

Wednesday, June 2, 2010

Getting started on Android Application Development


Working as an intern at webkul, I set up Android on my PC. Here's the entire documentation I submitted.

Simple Steps for getting started with the Android Application Development on Windows:

Step-1: Downloads

Step-2: Configure Ellipse

  • Start Eclipse
  • Goto to Help->Install New Software.
  • Hit Add.
  • For the name, type “Android” and set the link to https://dl-ssl.google.com/android/eclipse/” (if this doesn’t work, try it with http:// instead of https://).
  • Click OK.

Step-3: Add ADT (Android Development Tools)

Step-4: Configure Android SDK

  • Start SDK Setup.exe.
  • Install all the packages needed.
  • SDK Manager installs the tools.

Step-5: Set up Android Virtual Device

  • Click on Virtual Devices in SDK Manager.
  • It creates an Android device that will test run the programs.
  • In the name field: “any name”
  • In target field: “Android 2.2 – API Level 8”
  • Select Size as 20.
  • Hit create.
  • Select AVD from list
  • Hit Start

Step-6: Configure Eclipse again

  • Open Eclipse
  • Goto Window->Preferences
  • Select the Android tab.
  • Browse to the location of your Android SDK
  • Hit Apply.
  • Hit OK.

Step-7: Create a new Project

  • Goto File->New->Projects
  • Select Android Projects.
  • Fill the required fields.
  • Hit Finish
  • Start Coding.

Step-8: Run Your Program

  • Press F11.
  • Hit Save.
* * * * *

Wednesday, May 26, 2010

Google Code Jam - 2010

It was during GCJ 2009 when I got myself more involved in coding stuff. I still remember my last year's post about my performance at GCJ 2009. I can happily and proudly say that yes this year I showed some improvement..!!

Qualification Round:

The round started early morning and made me code even when the semesters were approaching..!! Nevertheless I went on for the third problem (Theme Park) first as it seemed much easier than others. Here's my code which I submitted for the correct submission.

#include<iostream>
#include<fstream>
#include<sstream>
#include<vector>

using namespace std;

int main()
{
int t,i,e=0,c=0,r,k,n,x,ans=0,flag=0,j,m=0;
vector<int> a,f;
ifstream fin("C-small-attempt0.in");
ofstream fout("output.in");
//ofstream fout("output.in");
fin>>t;
//cout<<t<<"\n";
while(t--)
{
m++;
ans=0;
e=0;c=0;
a.clear();
f.clear();
fin>>r>>k>>n;
for(i=0;i<n;i++)
{
fin>>x;
a.push_back(x);
}
i=0;
while(e!=r)
{
e++;
c=0;
f.clear();
flag=0;
while(c<=k)
{
if(i>=a.size()) break;
c+=a[i];
if(c>k) break;
else
{
f.push_back(a[i]);
ans+=a[i];
i++;
}
}
for(j=0;j<f.size();j++)
a.push_back(f[j]);
}
fout<<"Case #"<<m<<": "<<ans<<"\n";
}
return 0;
}



The code didn't suffice for the large test cases and I switched my attention to the first problem. After finding the logic of the problem it was a cake to write the code which even survived the large test cases and made our way to round-1 clear. Here's the code for problem-1 (Snapper Chain)


#include<iostream>
#include<fstream>
#include<math.h>

using namespace std;

int main()
{
int t,n,k,c,s,m=0;
ifstream fin("A-small-attempt1.in");
ofstream fout("output1.in");
fin>>t;
while(t--)
{
m++;
fin>>n>>k;
c=pow(2,n)-1;
if(k<c)
{
fout<<"Case #"<<m<<": "<<"OFF\n";
continue;
}
else
{
s=c;
while(s<k)
{
s+=(c+1);
}
//cout<<s<<" "<<k;
if(s==k)
fout<<"Case #"<<m<<": "<<"ON\n";
else
fout<<"Case #"<<m<<": "<<"OFF\n";

}
}
return 0;
}


With 43 points I advanced to Round-1.

Round-1C

I was unable to code in round 1A and round 1B due to the sixth sem examination. Nevermind, I got my chance to survive in the last round. I successfully submitted the problem-1 (Rope Intranet) (both large and small datasets) for 22 pts. My code:

#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <sstream>
#include <set>
#include <map>
#include <bitset>
#include <stack>
#include <queue>
#include <deque>
#include <vector>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <math.h>
#include <cctype>
#include <iterator>
#include <utility>

using namespace std;

int main()
{
int m,t,ans,i,j,n,a,b;
vector<int> b1,b2;
ifstream fin("A-small-attempt0.in");
ofstream fout("o.out");
fin>>t;
for(m=1;m<=t;m++)
{
ans=0;
fin>>n;
for(i=0;i<n;i++)
{
fin>>a>>b;
b1.push_back(a);
b2.push_back(b);
}
for(i=0;i<b1.size();i++)
{
for(j=0;j<b1.size();j++)
{
if(i==j) break;
if((b1[i]<b1[j])&amp;&amp;(b2[i]>b2[j]))
ans++;
else if((b1[i]>b1[j])&amp;&amp;(b2[i]<b2[j]))
ans++;
}
}
b1.clear();
b2.clear();
fout<<"Case #"<<m<<": "<<ans<<"\n";
}
}


Problem-2 (Load Testing) was really hard to understand and so was problem-3. After the competition ended I found myself placed at 1,950th position and losing the match by 950 ranks. Here's my complete performance.. GCJ-2010.
Khair, m happy but not satisfied. Will definitely improve the next time. Waiting for GCJ-2011 desperately..!! :)

* * * * *

Monday, March 29, 2010

Getting started with Programming Contest Control (PC2)



After a grand success of JSSATEN techno-cult fest Zealicon '10, I wanted to redirect myself to blogging. So, here I m with another post in which I would like to share my experience with Programming Contest Control (PC2) software.

PC2 is a dynamic, distributed real-time system designed to manage and control Programming Contests. PC2 operates using a client-server architecture. Logging into a client using one of several different types of PC2 accounts (Administrator, Team, Judge, or Scoreboard) enables that client to perform common contest operations associated with the account type, such as contest configuration and control (Administrator), submitting contestant programs (Team), judging submissions (Judge), and maintaining the current contest standings (Scoreboard).

Here are the steps to begin with PC2 software:
  • Install Java (version 1.3.1 or greater).
  • Donwnload PC2 software from here ( I prefer version 8 ).
  • Edit the pc2v8.ini file to point servers and clients to the server IP:port and put the modified .ini file on every server and client machine.
  • Start a PC2 server by running “pc2server.bat” and answer the prompted question as "no".
  • Start a PC2 Admin client by running “pc2admin.bat” and login using the name “root” and password “root”.
  • Do not forget to change the username and login after that.
  • Configure the Admin.
  • Admin: Generate the number of teams, judges, admins, scoreboards you need.
  • Admin: Add the problems from the problem tab.
  • Admin: Define the languages allowed in your competition from the language tab.
  • Admin: Configure the clock from the Time/Reset tab. You can start and stop the contest from this tab.
  • Start all PC2 Judge clients by running “pc2judge.bat” and login ( for judge1 ) using the name “judge1” and password “judge1” and hence for other judges.
  • Judge: Judge receives all the source codes submitted by the teams and has to judge them right or wrong.
  • Start all PC2 Team client running “pc2team.bat” and login ( for team1 ) using the name “team1” and password “team1” and hence for other teams.
  • Team: The teams can send their source code by browsing it, selecting the problem and selecting the language.
  • Team: Teams get prompted whenever a decision is made about their source code and the scoreboard automatically updates as a team succesfully submits a problem.
So, here is the minimal use of PC2 software. For running a multisite contest or automated compilation of source code please refer the its documentation.
Happy coding..!!

* * * * *

Monday, March 15, 2010

Algothematics.. All the Mathematics you missed



Algothematics is a new event being introduced in Zealicon '10 (annual TechFest of JSS Academy of Technical Education, Noida). The event will be conducted online. All programmers across the world are, hence, invited.

The event comprises of 15 levels. Each level has an ad-hoc mathematical problem which can either be solved manually (using pen and paper) or by conceiving certain algorithm. The submission requires only the answer to the question. Submission of source-code is not required.

Other tools can also be used for solving the problems. Spreadsheet, PARI-GP, MATLAB are among them. Besides all these we always have GOOGLE with us... :)

Besides all this, Zealicon forum will contain an "Algothematics" thread under "online events" where all sorts of problems and their hints will be discussed. No questions extraneous to the event will be entertained.
LeaderBoard will be available at the home page itself, so that you can constantly check your position among others.

Please do not ruin the basic purpose of event by any hacking stuff. Those not conforming to the rules and regulations will be banned without prior information. Decision of Algothematics Team will be the last.

First two teams reaching the final level will be adjudged victorious..

So pull up your socks, hone your programming skills.. Algothematics is about to begin..!!! (17th March, 00:00)

* * * * *

Friday, February 19, 2010

cmath v/s math.h

Here's a problem with pow() function in cmath and math.h:

With gcc set up, math.h just contains the the usual C function pow(double, double) - so all the functions work because with pow(int, int) both ints get promoted to double by compiler and all is OK.
cmath in more than a wrapper for math.h. First it includes math.h and then undefines a whole lot of stuff that math.h defined, and substitutes the c++ versions.
This includes the pow function declaration.
As the c++ overloaded functions (same as any other c++ compiler), you will get the ambiguity problem - when using pow(int, int).

P.S. - The ambiguity occurs with pow(int, int) because integers can be promoted to floats or doubles, which means that pow(int, int) can fit the so overloaded c++ pow function - so the compiler gets confused.

* * * * *

Thursday, February 11, 2010

How to make a good Website..

Answering the question "how" to make a Website is an easy task for many of us but the question which really puzzles us is "what" makes a good Website. We all visit many sites daily while surfing the net but there are a very few of them which leave an impression in our mind. Many sites are technically fine but fail on aesthetic grounds.

What makes a good WEBSITE:

Content:
The most important element of a website is its content. An interesting, informative and dynamic (updated frequently) content makes people visit the site again and again. The flashy colours or animated images look good at first but they never compell us to visit a site again and again. Only good content can do that.
Web is primarily a visual medium and its quite cumbersome to read text screen after screen. Try to keep the content to the point. Never elaborate.

Visuals:
Try not to Bold and Italicise the text too much, it gives an ameturish touch to your website. Sometimes underlined text get users confused with a hyperlink. Try avoiding it too. Make sure that the font size is even throughout. Do not wildly vary the size unless required.
Leave lots of blank spaces. Text on computer screens is hard to read, so don't cram up your text. Start lots of new paragraphs, and leave plenty of spaces between words and objects. Headings or horizontal rules are a good way to do this.
Do not use flashy colours as explained above. Try to select a good and readable combination of colour scheme. White text on black background may look classy but its difficult to read specially when text size is small.

Technicalities:
There are many things that make your web page look a bit different as what you expected:
  • Different browsers may show your web page differently. Try using a javascript available on net that kills this variation.
  • Sometimes web page view gets distorted on lower resolutions. Give a message on your website as "Website is best viewed in 1024X768" or anything like that.
  • The person viewing the web page may have certain settings different from yours.

Some tips:
  • To prevent your sites to look weird on text-only browsers you can add 'ALT' tags to ALL your images. If there is no alternative text that makes sense, use alt="" - this will help text-only browsers more than you will believe.
  • You can add a site search to your site. This will allow users to search your entire site easily and quickly.
  • Make sure that wherever your visitor is in your site, they can get to any other area. Also make sure they know where they are!!
As earlier said making a website is not a difficult task, it is designing and making people visit it again and again that makes it difficult. You need to make your website pretty different from all the other billions, floating on the internet.

* * * * *

Thursday, February 4, 2010

My way of writing a Quine

Here I m presenting a Quine written by me few days before. A Quine is a program that prints its own source code. In my source code user has an option of printing the source code n number of times.

Here is the code written in c:

#include < stdio.h >
int main()
{
int n;
char c;
FILE *f;
f=fopen(__FILE__,"r");
scanf("%d",&n);
while(n--)
{
while((c=getc(f))!=EOF)
putchar(c);
fseek(f,0,0);
}
return 0;
}



Here is the code written in c++:

#include <fstream>
#include<iostream>
#include <cstdio>
using namespace std;
int main()
{
int n;
string a;
cin>>n;
while(n--)
{
ifstream fin(__FILE__);
while(!fin.eof())
{
getline(fin,a,'\n');
cout<<a><<"\n";
}
}
return 0;
}

Wednesday, January 27, 2010

Configuring IIS Web Server



The ASP .NET pages can also be hosted through apache but it requires a hell lot of configurations and changes. An alternate version is IIS web server that comes already installed with your windows OS.
Vista OS has an already installed IIS web sever. One just needs to turn the feature on, through control panel. In XP OS you need to install it through XP CD.

Never try to configure IIS on Vista Basic you will land no where in the end. The OS is not provided with the complete package. ISAPI filters cannot be installed correctly on Vista Basic. Certain features of ISAPI filters need to be checked while hosting the website. The safest option is to configure the server on XP.

The steps for configuring it are:
  • Turn the IIS feature on through control panel.
  • Check installation by typing 'http://localhost:80/' in your browser. IIS page will appear.
  • Goto run and type inetmgr. This makes a window pop up. Window is that of IIS Manager.
  • The next step would be to create a virtual directory for an existing physical directory. For this you need to expand the Web Sites item in the IIS tree, right-click the Default WebSite item and choose New -> Virtual Directory from the menu.
  • Then comes the virtual directory creation wizard. The first step in the wizard is to choose an alias. The alias is the name, a user will use, in his URL to access the files in this virtual directory.
  • The next step in the wizard is to provide an existing physical directory to which the virtual directory will point to. So, this physical directory will be exposed as a virtual directory through its alias.
  • The final step in this wizard is to choose your permissions for the virtual directory. Usually, to host an ASP.NET application, read and execute permissions are enough. Of course, in order to fulfill your needs you can choose other permissions too.

* * * * *

Thursday, January 21, 2010

My submissions to SPOJ problem- TEST

My interest lies in programming languages. Actually, I have a bad habit of trying every type of weird thing and this time I came up with the idea of trying a simple problem in every possible programming language I know. I tried to solve the first problem of SPOJ named Test. Here are my codes:

C:

#include < stdio.h >

int main()
{
int n;
scanf("%d",&n);
while (n!= 42) {
printf(""%d", n);
scanf("%d",&n);
}
return 0;
}

C++:

#include < iostream >
using namespace std;

int main()
{
int n;
cin>>n;
while (n!= 42) {
cout<>n;
}
return 0;
}

C#:

using System;
public class Test
{
public static void Main()
{
int n;
while ((n = int.Parse(Console.ReadLine()))!=42)
Console.WriteLine(n);
}
}

Java:

public class Main
{
public static void main (String[] args) throws java.lang.Exception
{
java.io.BufferedReader r = new java.io.BufferedReader (new java.io.InputStreamReader (System.in));
String s;
while (!(s=r.readLine()).startsWith("42"))
System.out.println(s);
}
}

Python:

n = input()
  while n != 42:
  print n
  n = input()

PHP:

< ? php while(1) { fscanf(STDIN,"%d",$n); if ($n == 42) break; print "$n\n"; } ? >


BrainF*ck:

>+[>>,----------[>,----------]+++++[<-------->-]<[>>-<]>+[
-<+++++++[<------>-]<[>>-<]>+[
-<<[>>-<]>+[<<->>->]>
]<+++++++[<++++++>-]>>
]<++++++++[<+++++>-]< [<]<[>>[++++++++++.>]++++++++++.[[-]<]]<]
* * * * *

Friday, January 15, 2010

Introduction to various programming languages

Hey folks, I recently researched about various Programming Languages. Here I m going to discuss certain attributes of each language.

Basic

Year Introduced: 1964
Paradigm: Imperative, Procedural
Standardization: Yes, ANSI, ISO
Type Strength: Varies by dialect
Intended Use: Application, Education

C
Year Introduced: 1972
Paradigm: Imperative
Standardization: Yes, ANSI C89, ISO C90/C99
Type Strength: Weak
Intended Use: System


C++
Year Introduced: 1979
Paradigm: Imperative, Procedural, Object-oriented, Generic
Standardization: Yes, ISO
Type Strength: Strong
Intended Use: Application, System

C#
Year Introduced: 2000
Paradigm: Imperative, Object-oriented, Functional, Generic, Reflective
Standardization: Yes, ECMA, ISO
Type Strength: Strong
Intended Use: Application, Web

Haskell
Year Introduced: 1990
Paradigm: Functional, Generic, Lazy evaluation
Standardization: Yes, Haskell 98
Type Strength: Strong
Intended Use: Application

Java
Year Introduced: 1995
Paradigm: Imperative, Object-oriented, Generic, Reflective
Standardization: No
Type Strength: Strong
Intended Use: Application, Web

Perl
Year Introduced: 1987
Paradigm: Imperative, Procedural, Reflective, Functional, Object-oriented, Generic
Standardization: No
Type Strength: Weak
Intended Use: Application, Text processing, Scripting, Web

PHP
Year Introduced: 1995
Paradigm: Imperative, Procedural, Object-oriented, Reflective
Standardization: No
Type Strength: Weak
Intended Use: Web, Server-side

Python
Year Introduced: 1989
Paradigm: Imperative, Object-oriented, Functional, Aspect-oriented, Reflective
Standardization: No
Type Strength: Strong
Intended Use: Application, Scripting, Web


Scala
Year Introduced: 2003
Paradigm: Object-oriented, Functional, Generic, Lazy evaluation, Imperative
Standardization: No
Type Strength: Strong
Intended Use: Application, distributed computing

* * * * *

Wednesday, January 6, 2010

Why, what n how to Blog..


Why to Blog?

My Blogging habit commenced from January 2009 and I still love it a lot..!! I have a second blog running parallely. Here is its URL.
Blog is something that displays your thoughts to the outer world. Whatever is in your mind, you can deploy that on your blog, as its all yours. Many use blog for helping others, many use it for storing memoirs, many use them for technical discussions and many for fun and money. If you are addicted to writing.. blogging is your domain for sure.

What to Blog?
Its Important to know where your interest spans. A personal blog may contain all the happenings in your life and pictures to display them. A technical blog may contain certain useful information which you found out recently or which is the latest trend. A news blog may contain all recent updates about world, movies, sports, music etc. The thing that matters is your interest.
The second most important aspect of blogging is the content of your posts. The content must be precise, interesting and informative. For attracting more traffic to your blog you need to get a nice title to your posts. These titles get Googled frequently and increase the page rank of your post.

How to Blog?
There are many sites that offer you space to make your own blog. Some famous ones are Blogger, Wordpress, Tumblr, Procetours. I chose Blogger just because I was not having any idea about the others at that time!! I dont want to shift my blog now because then I will have to compromise with my page rank. Certain pre-built tools and gadgets are provided to the bloggers free from these sites. Javascripts may be used to build own tools.
Now, here are some tips from my side that can help bloggers in monitoring their blog and see who visits them.

Google Analytics: Its Google again :).. The analytics gives you a huge amount of information about the visitors of the blog viz the page they visit, amount of time they spend, the area from where they belong, the site from where they refer, how often they visit, even the operating system they use and the browser too..!! :p Visit Google Analytics, register yourself and your blog and enjoy tracing back your visitors. It will ask to add certain Javascrpit onto your home page and some other operations which can easily be done.

Feedjit: FeedJit is a cool tool. It displays the visitor on your blog in a real time basis. The visitors' location will be displayed on the blog itself at whichever corner you wish to place the tool. On clicking the real time display, it shows every visitor location, the sites from where they referred your blog and the keyword they typed in if they Googled your blog and also to which page did they exit. Go for it.. its free.. at least for now..!! :p

Google Feedburner: Recently added to Google. It allows you to generate feeds and sends them to each of your blog's subscriber. RSS feeds or ATOM, anyone can be chosen to begin with.

If you are interested in money making and have a decent regular traffic, you can add Google Adsense onto your blog. Google provides you with some advertisements of other companies which when clicked by a visitor lets you make money. The advertisements are mostly related to the content of your blog.

All these may help you in forming and maintaining your blog. If you have more information.. comments are surely invited..!!
HAPPY BLOGGING..

* * * * *