February 2011

Popular Web Development-Javascript debugging tools

There are lots of web development debugging tools available nowadays.

Initially we debug the javascript in Internet Explorer by enabling the following options in the browser

1. tools -> internet options -> advance -> browsing -> display a notification about every error option and

2. unchecking disable script debugging options.

Then used visual studio attach with IE, so we could trace the exact error line and can see the script and file name and so on. The visual studio is great tool for development and debugging, we can set break points and so on to debug it.

After the mozilla firebug comes, the javascript debugging become easy and now become lazy and looking something similiar for IE browser also :-)

Firebug is popular and powerful tool for web developers.Its not only helps to reduce the javascript debugging time, we can do more using this tool. It provides
advanced javascript debugging options. Error ocurrs then the error indicator shown in status bar, by clicking it will open console,it will show the information about the error.By clicking the link, it will take to the source file.

I like the javascript debugging option and net option where we can get how many requests made,time taken to load, whether it is cached or not, what data passed to server and what it got and so on. It helps in performance improvements.

We can inspect the element, change the element live and see the results (no need to open the file in editor, change the file, save and refresh to see the result),can copy the source code of particular element or complete. By placing the mouse in page, we can inspect its source code.

Firebug gives more feature. Impressed on firebug? Looking something similar to firebug for IE? the below tools will help.

1. Firebug Lite

It gives firbug version for other browser. It doesn't have the all features of the firebug, but provides some extend.

This is not having javascript debugging :-( at present (may be future,it will comewith). There is no installation for this firbug lite.Just you have to include the following
line in between tag of your page.

<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>

thats it, the page will have firebug lite icon, just click on that will show the console, inspect, DOM options.

2. DebugBar

This web development tools is for IE browser. It have DOM Inspector, Javascript Insepector, console and provide HTML Validator and more. After installation debug bar icon will be available in IE browser. Just clicking on it, will open panel which shows the requested pages details and alerts javascript error and so on.

3. Companion.JS

This is javascript debugger for Internet Explorer. It provides detailed javascript error report, can inspect the javaacript objects. It is have firebug like console api feature.

There are lots of tools coming up for various browsers. Let us use these tools and enjoy developing and debugging.

Post your points and comments about this article. If you know anyother best tool for debugging, please post it, so we all learn it.

Top 15 commands to know in Linux /Unix

There are lots of commands available in linux to perform various tasks. unix and linux comes with lots of inbuilt commands to do particular task.

In this article posting the top 15 commands that everyone has to know, when working in linux and unix box.

1.scp :

Used to copy files or directory from one host to other securely.

To copy from local host to remote:
scp myfile.txt amul@remotehost:\tmp

To copy from remote to current directory:
scp amul@remotehost:\tmp\file.txt .

To copy directory just user -r option.

2.find :

To locate the files in the directory structure. Find have lots of option.We can find files based on file name, type, user, permission, regular expression pattern..

For example based on filename

find . -name filename -print

3.ps :

This command gives the current process status. There are lots of options available. To get the running process list. for an example:

ps -ef : To get all process all details

ps -ef | grep httpd : To get the httpd running

4.top :

To get the process status live update, use top command.

output of the comamnd would be like this

last pid: 11200; load averages: 0.04, 0.04, 0.05 16:36:53
118 processes: 115 sleeping, 3 on cpu
CPU states: 95.6% idle, 1.5% user, 0.8% kernel, 2.1% iowait, 0.0% swap
Memory: 2000M real, 1100M free, 12M swap in use, 4006M swap free
PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
10695 ammul 1 58 0 2960K 1896K cpu/1 0:00 0.03% top
12009 oracle 1 58 0 383M 362M sleep 0:58 0.02% oracle
1 root 1 58 0 888K 576K sleep 9:22 0.00% init

5. kill :

To kill the background process
kill pid - the pid is the process id. Kill the process which pid is specified in kill command

kill -9 pid - forcely kill the process

6.grep :

Search pattern in files or from std input from other command. It can be piped with other command, the output of the previous command will be used as input for grep. It have lots of options for regexp selection, output control.

for example
-i - to ignore case while searching
-v - to get not matching lines
-r - recursive search inside the directories
-l - print only filename that have the search pattern

grep -rl domain template

This will search all the files inside the template directory for pattern domain and list the filenames

7.chmod :

To change the file permission. Just giving simple example for how to set permission

u for user, g for group and o for other
+ for grant and - for deny

ugo+rw means grant read and write permission for all.
0-wx means deny write and execute access for others.

There is also numnerical way to specify the permission
4- read
2- write
1 - execute
and
first digt is to set owner permission
second digit for group permission
third for others
so here is the example : chmod 755 myfile.txt

8.chown :

Change the owner of the file or directory. To change owner of the files in subdirectory use -R

chown username filename

9.wget :

wget to download file from internet. example:

wget http://search.cpan.org/CPAN/authors/id/A/AB/ABRAXXA/DBIx-Class-0.08127.t...

10.crontab -l and crontab -e :

Want to set the scheduled tasks in linux? You have to use these commands.If you have super or root user permission then you can edit or view the crontab. Otherwise it will show
you are not authorized to use cron.

crontab -l : To view the cron list.
crontab -e : show cron entry for update

11.df-h :

Use this command to check the disk space. It will display the diskspace utilization details

The output of the df-h would be like this

Filesystem Size Used Avail Use% Mounted on
/dev/hda1 2.0G 68M 1.9G 4% /
/dev/hda3 2.0G 798M 1.2G 41% /boot
swap 3.9G 24K 3.9G 1% /var/run
/tmp 2.0G 1.4M 2.0G 1% /tmp

12.ping :

To used to test the connection.

ping hostname/ipaddress

13.touch:

To create file, if doesn't exists. If exists it change data/timestamp of file to current date and timestamp.

touch filename

14.ssh :

To login to remote host.
ssh hostname

15.tail :

This commands helps to view the log files. For example

tail -f logger.log
-f option reads the file and output it for reading

tail -100 logger.log
prints last 100 lines of the file

These commands are used most frequently. There are lot to know. If it helpful post your comments and suggestions

Basic points in jQuery and jQuery Ajax calls

Recent years jQuery is most the popular javascript library. It replaces the lots of writing in original javascript code to small jQuery scripts. It simplifies the coding. We can do ajax calls, handle events, changing css, adding/removing elements and lot more with jQuery.

How to start with jQuery:

Download the latest jquery.js and include that in html page. Place the jQuery code which reads or manipulate the document objects inside the

jQuery(document).ready(function($) {
.... });

The code placed inside will be called after the page loads. This is called as ready event in jQuery.

Small example: user clicks the edit link across the application, it has to get user confirmation

jQuery(document).ready(function($) {
$("a.editlink").click(function(event){
event.stopPropagation(); //stops calling next action
var proceed = confirm("Do you really want to update the data");
if(proceed) {
this.click; //continue
return true;
}else {
event.preventDefault(); //retain in the same page
}
}
});

How to refer the elements by class in jQuery

To refer the elements which have the particular class name use . symbol.

For example you want to set color attribute for elements which have classname as schoolbuilding

$('.schoolbuilding').attr('color','green');

How to refer the elements by id in jQuery

To refer element by id use # symbol.
For example:

<div id='testid'> test </div>
to refer this div using id in jQuery

$("#testid").hide();

How to avoid jQuery conflict with other libraries like prototype

When you use other JavaScript libraries with jQueries and $ - short reference of jQuery may get conflict. I personally faced this problem with prototype. To avoid this include this

<script> jQuery.noConflict();</script>
in head tag after including jQuery.js

Ajax calls in jQuery

jQuery gives simple way to make the ajax calls. Initial days, we create XMLHttpRequest or ActiveXObject based on browser and pass the data to the server side script to make the ajax calls. It is bit difficult and long writing.

jQuery api provides easy way to make the ajax calls. It have callback options, we can specify the data type retrieved from server side.

get using jQuery

Used to read the page and load or submit the page with get method - that is pass the parameters in query string

For example get the page from itechp2pexchange.com and display inside the div

$.get(
"http://itechp2pexchange.com/node/42",
function(data) { $("#result").html(data) },
);

To send data to the script and get message and display

$.get(
"http://itechp2pexchange.com/testform.php",
{name:'myname',email:'sasikala.chinnasamy@gmail.com'},
function(data){ $(".message").html(data);} //callback
);

post using jQuery

Post call also similar to get, insted of get, here it will post and data will be passed by post method not in the query string.

$.post(
"http://itechp2pexchange.com/testform.php"on(,
{name:'myname',email:'admin@itechp2pexchange.com'},
function(data) {$(".message").html(data);}
);

In both get and post calls you can specify what type of data get from the server.

.ajaxComplete() and .ajaxStart():

.ajaxStart() called when ajax call begins, so we can write jQuery to show the div which have message like Loading, Please wait....

.ajaxComplete() called when ajax request completed, so we can write jquery to hide the div

To summarize to use jQuery get latest jQuery and place it in html, place your code inside the ready event. To refer the elements by class use .classname and to refer by id use #id. This is equivalent to write document.getElementById(id) in normal javascript.

Ajax calls in jQuery is simple by $.get and $.post. In jQuery ajax calls we can use callback to display message or process the retrived data, this can be onsucess of loading.

We can get different type of data using ajax calls xml,html.. and to get json data use $.getJSON().

Most frequently used commands in mainframe sort

Sort/Merge in mainframe used to

* Sort records in the file in specified order
* Merge the two or more files into single file
* Copy a file to other file in sorted order
* Remove duplicate records in the file
* Omit first or last specified number of records in the file
* Used to produce reports by formating

The most frequently used sort/merge options

1.Merge the N – number of files into single file.
Use sortin as N – number of files.
Use sortout as one file name.

Command: SORT FIELDS=COPY
Example:


//DDName EXEC PGM=SORT
//SORTIN DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
// DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
// DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
// DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
//SORTOUT DD DSN=XXXXXXXXXXXXXXXXXXXX,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,SPACE=(XXX,(XX,XX),XXXX),
// DCB=(*.SORTIN) Output file created using properties from input file.
//SORTWK01 DD UNIT=XXXXX,SPACE=(XXX,(X,X))
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY

2.Copy one file to another file with sorted order.

Command:

SORT FIELDS=(starting position, length, format of the variable, ascending or descending.

Note : You can use just as COPY instead of starting position, length etc but file will be sorted from position 1 to till last.

Example :


//DDName EXEC PGM=SORT
//SORTIN DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
//SORTOUT DD DSN=XXXXXXXXXXXXXXXXXXXX,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,SPACE=(XXX,(XX,XX),XXXX),
// DCB=(*.SORTIN) Output file created using properties from input file.
//SORTWK01 DD UNIT=XXXXX,SPACE=(XXX,(X,X))
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,7,CH,A)

SORT FIELDS=(1,7,CH,A) – 1 – starting position, 7 – length of the variable, CH – Alphabetic or alphanumeric, A – Ascending.

3.Copy one file to another file with sorted order and excluding duplicate records.

Command:

SORT FIELDS=(starting position, length, format of the variable, ascending or descending.

SUM FIELDS=NONE

Example:

//DDName EXEC PGM=SORT
//SORTIN DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
//SORTOUT DD DSN=XXXXXXXXXXXXXXXXXXXX,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,SPACE=(XXX,(XX,XX),XXXX),
// DCB=(*.SORTIN) Output file created using properties from input file.
//SORTWK01 DD UNIT=XXXXX,SPACE=(XXX,(X,X))
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,7,CH,A)
SUM FIELDS=NONE

From input file from 1 st position to 7 th position having matching records then it will be eliminated and one record will be written into input file.

4.Copy one file to another file with sorted order and writing the duplicate records into other file.
Command:

SORT FIELDS=(starting position, length, format of the variable, ascending or descending.

SUM FIELDS=NONE

Example:

//DDName EXEC PGM=SORT
//SORTIN DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
//SORTOUT DD DSN=XXXXXXXXXXXXXXXXXXXX,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,SPACE=(XXX,(XX,XX),XXXX),
// DCB=(*.SORTIN) Output file created using properties from input file.
//SORTXSUM DD DSN=&HILVL..EFS.HV01BG17.SORTED.DUP,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,SPACE=(XXX,(XX,XX),XXXX),
// DCB=(*.SORTIN) Output file created using properties from input file.
//SORTWK01 DD UNIT=XXXXX,SPACE=(XXX,(X,X))
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,7,CH,A)
SUM FIELDS=NONE,XSUM

From input file from 1 st position to 7 th position having matching records then it will be eliminated and one record will be written into input file. The eliminated records will be in SORTXSUM file.

5.Copy one file to another file with sorted order and omitting few records.

Command:

SORT FIELDS=(starting position, length, format of the variable, ascending or descending.

OMIT COND=(starting position, length, format of the variable, conditional field

Example:

//DDName EXEC PGM=SORT
//SORTIN DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
//SORTOUT DD DSN=XXXXXXXXXXXXXXXXXXXX,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,SPACE=(XXX,(XX,XX),XXXX),
// DCB=(*.SORTIN) Output file created using properties from input file.
//SORTWK01 DD UNIT=XXXXX,SPACE=(XXX,(X,X))
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,7,CH,A)
OMID COND=(24,3,CH,EQ,C’YYY’)

From input file from 24 th position to 26 th position having YYY then it will not written into output file and rest of the records will be written into output file.

6.Copy one file to another file with sorted order and writing only few records.

Command:

SORT FIELDS=(starting position, length, format of the variable, ascending or descending.

INCLUDE COND=(Starting position, length, format of the variable, conditional parameter)

Example:

//DDName EXEC PGM=SORT
//SORTIN DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
//SORTOUT DD DSN=XXXXXXXXXXXXXXXXXXXX,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,SPACE=(XXX,(XX,XX),XXXX),
// DCB=(*.SORTIN) Output file created using properties from input file.
//SORTWK01 DD UNIT=XXXXX,SPACE=(XXX,(X,X))
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,7,CH,A)
INCLUDE COND=(8,3,CH,EQ,C'AAA')


From input file from 8 th position to 10 th position having AAA then it will written into output file and rest of the records will be eliminated.

7.Copy one file to another file with sorted order but you can stop after N number of record (it will stop write once the N number of record is reached).

Command:

SORT FIELDS=(starting position, length, format of the variable, ascending or descending.

STOPAFT=100

Example:

//DDName EXEC PGM=SORT
//SORTIN DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
//SORTOUT DD DSN=XXXXXXXXXXXXXXXXXXXX,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,SPACE=(XXX,(XX,XX),XXXX),
// DCB=(*.SORTIN) Output file created using properties from input file.
//SORTWK01 DD UNIT=XXXXX,SPACE=(XXX,(X,X))
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,7,CH,A),
STOPAFT=(172)


In output file first 172 records will be written from input file.

8.Copy one file to another file with sorted order but you can skip N number of records (it will skip from first record to that N number of records).

Command:

SORT FIELDS=(starting position, length, format of the variable, ascending or descending.

SKIPREC=number of records to be skipped from input file

Example:

//DDName EXEC PGM=SORT
//SORTIN DD DSN=XXXXXXXXXXXXXXXXX,
// DISP=SHR
//SORTOUT DD DSN=XXXXXXXXXXXXXXXXXXXX,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,SPACE=(XXX,(XX,XX),XXXX),
// DCB=(*.SORTIN) Output file created using properties from input file.
//SORTWK01 DD UNIT=XXXXX,SPACE=(XXX,(X,X))
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,7,CH,A)
SKIPREC=(172)

In output file first 172 records will be skipped from input file.

Widely used Network Commands

In order to provide performance and reliability in network, network monitoring systems are used. In turn these network monitoring system use the network commands to do this job.

In network a particular node or nodes or link failes that is called outage. The network outage may be due to hardware failure or communication link failure. The time between outage and till it get up is called as downtime.

IPV4 to IPV6

Internet Protocol(IP) address is the number assigned to each system in the network to identify it. This is like telephone numbers, if the 7 digit telephone number gets over then we move to eight digit. Same like this situation arised in the internet world due to the incresed number of system connected in the network.

IPv4==>Internet==>IPv6

What is IPv4

Internet Protocol version 4 (IPv4) address are 32 bit number that is 232 possible unique addresses. This is getting allocated to the individual devices connecting to internet.

What is IPv6

Internet Protocol version 6 (IPv6) is 128 bit address that is 2128 possible numbers. Once IPv4 runs out, each new devices connected to net will be allocated IPv6 number.

Why IPv4 to IPv6

IPV4 will be exchausted in near future. To manage the growing devices connected to network, need to move from IPv4 to IPv6 arised.

We are now aware that will move to IPv6 and but not sure when. So the organizations and countries are getting ready for this change.

sample IPv6 and IPv4 address:

IPv6 Address. . . . . . . . . : fe80::98b3:3e34:5ed7:3f03

IPv4 Address. . . . . . . . . . . : 192.168.1.2

HTML: How to create internal page links?

You have page which contains the sections. When user click on the section name in the top of the page, you want them to take to appropriate section.

For example: you have topic as 20-20 Cricket Teams and have section like below.

Chennai Super kings
Royal Challengers Bangalore
Mumbai Indians
Rajesthan Royals
Kolkata Knight Riders
Deccan Chargers
Delhi DareDevils
...
The page goes on and on.

How to do link the section heading and the actual section content in the page? We can use <a name=""> tag to identify or speciy the particular section. For example:

<a href="in_daredevil">Delhi DareDevils:

Delhi DareDevils based on india and it played .. games till date. It is ranked ... in india and it ranked .. in world....

and in heading part just refer <a href="#in_daredevil">Delhi DareDevils</a>

so when you click Delhi DareDevils in the heading section at the top of the page, it will take you to Delhi DareDevils section.

Javascript Unit Test Using FireUnit

Unit testing is low level testing against the small piece of code or for unit of codes like functions or subroutines. Unit test scripts helps to make sure the code works as expected.

Once we write unit test scripts for code, we can create suite to call all this and run. We can run this test suite after making changes, if any test fails then its sure that our change impacts somewhere else. so it helps to fix that also, kind of integrated test.

Normally we write test script in the same language on which the application developed. There are lot of tools for unit tests for various languages. Nowdays dev guys looking for unit tests for javascripts also.

Unit test scripts add-ons coming up with javascript libraries, for example jQuery have QUnit and script.aculo.us have unittest.js. Firebox also have extension for javascript testing called fireUnit. In this article, we just look on FireUnit and how to write test script for FireUnit.

FireUnit:

FireUnit adds test tab to the firebug, so its easy to view the test results in the same page of the browser. This supports only firefox, it won't work in other browsers. If you don't having firebug and you are javascript developer then you should have this awesome feature. Just read this article Popular Web Development-Javascript debugging tools to get more details and install it.

Coming back to fireUnit, once firebug is in place, download the FireUnit from firebox website and install it. It just add Test tab in firebug windows. so it is easy to test and see the results.

How to write test script for FireUnit?

For example, you have javascript like below

validation.js

function simpleCheck(inpStr1,inpStr2)
{
if(inpStr1.length>inpStr2.length) {
return inpStr1+"have more characters than "+inpStr2;
}
if(inpStr1.length return inpStr1+" have less characters than "+inpStr2;
}
if(inpStr1.length>inpStr2.length) {
return "Both equal";
}
}

test script for FireUnit

Now write test for this validation.js using FireUnit

fireUnit_testvalidation.js

function test_SimpleCheck() {
var actual = simpleCheck("test","test2");
var expected = "test have less characters than test2";
//to compare the result
fireunit.compare(expected,actual," second string greater then first string");

actual = simpleCheck("test3","test2");
expected = "test3 and test2 have equal length";
//test assert
fireunit.ok(expected=actual," Both have equal length");

//to show the results of all test to test tab
fireunit.testDone();
}

Html to test

fireUnit_testvalidation.html

include the javascripts validation.js and its test script fireUnit_testvalidation.js in html. Call the test script funtion to run the test.


<html>
<head><title>Testing validation.js</title>
<script src="validation.js"></script>
<script src="fireUnit_testvalidation.js"></script>
<script>
test_SimpleCheck();
</script>
</head>
<body>
</body>
</html>

Output of test result would be shown like below

To conclude, the FireUnit is still in intial stage. Its good that the results are displaying in the Test tab of the firebug. Disappointment is that it can't be used in other browsers. We could expect more added features in future.

Difference between truncate and drop in DB2?

Difference between truncate and drop in DB2?

keyboard shortcut for task manager and toggling task manager tabs

While checking the process running on the system, suddenly the taskmanager tabs disappears.

I did not realize, i have double clicked the mouse. If you double click on the taskmanager black space, the tabs will get dispear.

To bring it back, again double on the black space of the taskmanager.

Keyboard Shortcut for taskManager

Windows xp

1. press Ctrl + alt + delete at the same time, then select taskmanager

Vista and windows 7

2. Press Ctrl + Shift + Esc - directly open the taskmanager

Reduce image size in Paint

You have image and want to reduce the size of it.

You can do it in paint -> image ->Resize/Skew -> specify horizontal and vertical size in resize option and now save the file. The file will get reduced now!!!

other option in paint: image->attributes->width and height helps to reduce the image upto the level you want.

Most popular youtube downloader - Vdownloader

Vdownloader is the one of the most popular youtube downloader.It have unique features from others. so just writing about it.

Vdownloader have normal features which other downloader provides like download from multiple sites, convert to other formats and so on.

Apart from those, it have additional features
* To schedule the downloads at the specific time
* To sharing the downloads in social networks
* adjusting the frame rate and resolution based on disk space
* Built in proxy and so.

They have plan adding new features also.

PC Optimization and cleaning tool - CCleaner

CCleaner helps to clean up the browser histories, clean up registry and clean unused files inturn that helps to increase the speed of the PC.

  • It supports - IE, Mozilla, chrome,opera, safari .. browsers - It cleans cookies,cache, download history, temporary file, auto complete forms, index.dat
  • Cleans recycle bin, temporary files, log files, clipboard data
  • Cleans start up recent documents and thumnail cache, memory dumps
  • Having advance option where you could specific the exceptional entries to exclude those while cleaning

File Recovery tool - Recuva

Recuva is tool which helps to recover the deleted files. It is very good tool to recover

  • the deleted files from recycle bin, disk, USB drive
    the emails
  • the deleted music from ipod
  • to get files from damaged disk
  • to get data from unsaved word documents

Defrag tool - Defraggler

Defraggler helps to defrag drive, folder or files. It is unique defrag tool, which provides this option.

It have option to schedule it. It organizes the free space to avoid further fragment.

Looking for opensource equivalent to Microsoft office - OpenOffice , LibreOffice

Looking for open source which provides equivalent features of word, excel, powerpoint? You want to work in documents, want to prepare presentation but not having microsoft office.

There are open source available for this. i am just posting about two open source office suite.

OpenOffice

The openoffice is there many years. Most of you aware of it and may be using it. I just giving small brief on whats there in openoffice.

Writer - like Microsoft Word
Calc - like Miscrosoft Excel
Impress - like Microsoft Powerpoint
Draw - like Microsoft Draw
Base - openoffice for database stuff

Its have complete suite, you can do document, presentation, work in spreadsheet, can draw like in word, excel, impress.. If you worked in MS, it is similar. If you are new, it is not hard to work in this. It is simple, best opensource.

libreoffice

Now new competition for openoffice. Oracle buys openoffice. Few months back, openoffice developers who seperated from Oracle are started Document Foundation and released the libreoffice. so the libreoffice is fork of openoffice.

Libreoffice is new office suite and contains features which openoffice have and added additional language support, came with import filters, SVG support and more flexibility in spreadsheet and so on.

This also have Writer - document, Calc - spreadsheet, impress - presentation, Draw - MS draw, math, base- database features, PDF creation tool.

Which one? Openoffice(OO) or LibreOffice:

Looking for free advanced office suite then as of now based on recent release libreoffice provides more than openoffice. Libreoffice have features which openoffice have and more than it.

At present the libreoffice have features in addition with openoffice features like import filters, language support, more flexibilty in calc spreadsheet and so on.

please share your comments and experience in openoffice and libreoffice.