Tuesday, December 13, 2011

Delete cookies using java script

You can use below java script to delete all the cookies.

function deletecookies()
{
var cookies = document.cookie.split(";");
for(var i=0; i < cookies.length; i++) {
var equals = cookies[i].indexOf("="),
name = equals > -1 ? cookies[i].substr(0, equals) : cookies[i];
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}

alert(document.cookie);
}

Saturday, February 19, 2011

Creating Ad-Hoc Wireless network

Hi.

You dont need a wireless router in your home to create an wireless network. Following this video will help you to create an wireless network in your home.

I have a reliance wirless broadband at my home and there are no routers in market that supports usb mobile broadband modem.

I explored an option in ubuntu 10.10 that helped me to create a wireless network with out router. Now I am able to share internet across my wifi devices like ipod,mini and old laptop with out router.

My broad band service:
Reliance net connect.

Hope my video helps.
Balaji

Wednesday, November 17, 2010

Unable to download Apache Axis2 Tools

I tried to download “Service Archive Wizard - Eclipse Plug-in and Code Generator Wizard - Eclipse Plug-in” but I am unsuccessful . The references http://apache.securedservers.com//ws/axis2/tools/1_4/axis2-eclipse-codegen-wizard-1.4.zip , http://mirrors.kahuki.com/apache//ws/axis2/tools/1_4/axis2-eclipse-service-archiver-wizard-1.4.zip are not working

This is a know issue and will be solved in Axis2 1.5.3 refer : https://issues.apache.org/jira/browse/AXIS2-4593
Solution:
The best way is to get from archive site http://archive.apache.org/dist/ws/axis2/tools/1_4_1/

Hope this Helps
~Balaji

Tuesday, September 7, 2010

Installing oracle 10.0.2 on Red Hat Linux

Hi,
I tried to install Oracle 10.2 on Red Hat ES 4.0 and found the below article as very useful and easy one.
Before installation
• Have static ip to installation machine.
• Copy the installer to folder where user ‘oracle’ has execute permissions.
During Oracle installation
• RUN scripts as root user (Oracle will give you the hint, don’t ignore it)
• Unlock the account which you need.
Regards
Balaji

Source Post is from: http://www.oracle-base.com/articles/10g/OracleDB10gR2InstallationOnRedHatAS4.php

Oracle Database 10g Release 2 (10.2.0.1) Installation On Red Hat Enterprise Linux 4 (RHEL4)
In this article I'll describe the installation of Oracle Database 10g Release 2 (10.2.0.1) on Red Hat Enterprise Linux 4 (RHEL4). The article is based on a server installation with a minimum of 2G swap, secure Linux disabled and the following package groups installed:
• X Window System
• GNOME Desktop Environment
• Editors
• Graphical Internet
• Text-based Internet
• Server Configuration Tools
• Development Tools
• Administration Tools
• System Tools
Alternative installations may require more packages to be loaded, in addition to the ones listed below.
• Download Software
• Unpack Files
• Hosts File
• Set Kernel Parameters
• Setup
• Installation
• Post Installation
Download Software
Download the following software:
• Oracle Database 10g Release 2 (10.2.0.1) Software
Unpack Files
Unzip the files:
unzip 10201_database_linux32.zip
You should now have a single directory containing installation files. Depending on the age of the download this may either be named "db/Disk1" or "database".

Hosts File
The /etc/hosts file must contain a fully qualified name for the server:

Set Kernel Parameters
Add the following lines to the /etc/sysctl.conf file:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
Run the following command to change the current kernel parameters:
/sbin/sysctl -p
Add the following lines to the /etc/security/limits.conf file:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
Add the following line to the /etc/pam.d/login file, if it does not already exist:
session required pam_limits.so
Note by Kent Anderson: In the event that pam_limits.so cannot set privileged limit settings see Bug 115442.

Disable secure linux by editing the /etc/selinux/config file, making sure the SELINUX flag is set as follows:
SELINUX=disabled
Alternatively, this alteration can be done using the GUI tool (Applications > System Settings > Security Level). Click on the SELinux tab and disable the feature.

Setup
Install the following packages:
# From RedHat AS4 Disk 2
cd /media/cdrom/RedHat/RPMS
rpm -Uvh setarch-1*
rpm -Uvh compat-libstdc++-33-3*
rpm -Uvh make-3*
rpm -Uvh glibc-2*

# From RedHat AS4 Disk 3
cd /media/cdrom/RedHat/RPMS
rpm -Uvh openmotif-2*
rpm -Uvh compat-db-4*
rpm -Uvh libaio-0*
rpm -Uvh gcc-3*

# From RedHat AS4 Disk 4
cd /media/cdrom/RedHat/RPMS
rpm -Uvh compat-gcc-32-3*
rpm -Uvh compat-gcc-32-c++-3*
Create the new groups and users:
groupadd oinstall
groupadd dba
groupadd oper

useradd -g oinstall -G dba oracle
passwd oracle
Create the directories in which the Oracle software will be installed:
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /u01
Login as root and issue the following command:
xhost +
Login as the oracle user and add the following lines at the end of the .bash_profile file:
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=TSH1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
#LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
Installation
Log into the oracle user. If you are using X emulation then set the DISPLAY environmental variable:
DISPLAY=:0.0; export DISPLAY
Start the Oracle Universal Installer (OUI) by issuing the following command in the database directory:
./runInstaller

Sunday, September 5, 2010

Copying videos to Sony WalkMan NWZ-E344

Hi recently I bought a sony walk man and struggled to copy videos to it. I found the following steps to copy the songs.
• Convert your DVD files to Windows Media file
o You can use Win Avi http://www.winavi.com/ very good tool.
o Go to advanced options and use the following settings
o Resolution: 310x230
o Bit rate 768 Kbps
o Frame rate 30
• Copy the generated windows media file to sony walkman using content transfer utitly from Sony.
o Download the utility from http://www.sony.co.in/support/download/363271/product/nwz-w252/sectionfirst?subpage=detail
Hope this Help!
Balaji

Wednesday, August 18, 2010

Recursively listing all the files in directory java

/**
* Get all the files in a directory. This recursively gets the files from
* sub directories as well
*
* @param parentDir
* @return
* @throws FileNotFoundException
*/
private static List getFiles(File parentDir)
throws FileNotFoundException {
List result = new ArrayList();
File[] filesAndDirs = parentDir.listFiles();
List filesDirs = Arrays.asList(filesAndDirs);
for (File file : filesDirs) {
result.add(file);
if (file.isFile() == false) {
List deeperList = getFiles(file);
result.addAll(deeperList);
}
}
return result;
}

Using Apache Lucene Example.

Recently I downloaded apache lucene project and struggled to run their examples. Probably this blog my help you to save 3hr of effort.

Aim: if you want to search a word inside the files. Please follow below steps

1. Index the directory first
2. Create a query file
3. Search the directory

• Indexing the dir ‘workspace’
o java -cp lucene-core-3.0.2.jar;lucene-demos-3.0.2.jar org.apache.lucene.demo.IndexFiles C:\workspace
• Create a query file “queries.txt” and save all the keys you want to search. For Example ‘hello’
o Search for ‘hello’ word in all the files under dir ‘workspace’
• Search using lucene
o java -cp lucene-core-3.0.2.jar;lucene-demos-3.0.2.jar org.apache.lucene.demo.SearchFiles -index C:\index C:\ queries.txt

queries.txt file should have string ‘hello’. If you want to search multiple words have multiple words in the file separated by \n

Sunday, July 11, 2010

Log statements in JSP

Hi,
Sometimes it is helpful have log statements in JSPS. Unfortunately if we have lot of business logic embedded in JSP’s. It is better to have log statements.

To add log statement in JSP
• Import logger
o <%@page import="org.apache.log4j.Logger"%>
• Provide the logger name, FQN name of the JSP
o private static final Logger logger = Logger.getLogger("portlet.ext.watching_portlet.view.jsp");
• Add the log statements as mentioned in the guide lines
o logger.warn("Unable to find thread associated to subscription");

Best practice:

Please don’t rely on toString method to get the exception stack trace.
Poor: logger.warn("Unable to find thread associated to subscription"+e);
Good: logger.warn("Unable to find thread associated to subscription",e);//exception stack trace will be logged, even if api doesn’t override the toString method

Changing JSP Editor font Eclipse:

By default JSP editor uses text editor for font settings . Change the setting by

Window->preferences->general-appearance->colors and fonts-Basic->Text font

Tuesday, May 25, 2010

Getting the method name in the method annotated with “@BeforeMethod”

Hi All,

Below is an example that helps to get the test method name, before executing

A quick example for the people who are very lazy like me 


@BeforeMethod
@Parameters("selenium.screenShotFolder")
protected void captureScreenShotBefore(String folder,Method method) {
String data = getSelenium().captureScreenshotToString();
String fileName=method.getName()+"_before.png";
Reporter.log(""+fileName+"");
FileUtil.writeToFile(data,folder+fileName);
}


Thanks & Regards
Balaji

Wednesday, April 21, 2010

java.io.IOException: Cannot run program CreateProcess error=87, The parameter is incorrect

Problem:
Recently we observed our ant scripts are failing to fork a JVM process and they are failing with error “CreateProcess error=87, The parameter is incorrect"”

Solution:
Please reduce the classpath size for the javac/java

Root Cause:
In windows operating system if the arguments to process is too long . The process cannot be launched by the Operating system, In our case while ant forks the java/javac process and provides the classpath as argument . The classpath size exceeds the maximum size OS can handle. The solution for this problem is to reduce classpath. (i.e) reducing the size of arguments to process.

GWT compiler fails with Bad class version

Solution: This might happen because of incorrect version of Javac used by the GWTcompiler or the incorrect version of the jar files in project space.

We observed ant in netbeans is using the default JVM of the netbeans ide instead of JVM set for the project. Please change the default JDK used by neatbeans by changing netbeans.conf file.

For more info please refer http://wiki.netbeans.org/FaqJdkHome

Regards
Balaji

Monday, March 22, 2010

Unable to change GWT home in netbeans 6.5

Recenetly I faced a problem when I took GWT based netbeans workspace from my collegue. I am able to point the GWT installation to my local folder. Even I changed the gwt installation folder in netbeans, it is simply ignoring.

The way to solve the problem

• Go to nebeanse config folder of your project.
o For example
o C:\Temp\work\QABuild_Snapper\client\nbproject
• Edit gwt.properties
• Modify the “gwt.install.dir” to the directory you have gwt installation
• Save the file

Hope this helps 

~Balaji

Wednesday, February 24, 2010

Sharing source files across the projects in Nebeans 6.5 or above.

I observed a strange problem using netbeans ,when I tried to use the source files that are already used by other projects. I get an exception “Package folder already used in project”. As per the netbeans it is correct, because we are trying to use the source folder that is already used by other project. But there are few situations that demands us to do so.
For example we have code in folder “c1”; it has to be shared by two projects p1 and p2

Include the code “c1” by going to project ”p1” ->properties->sources->Source PackageFolders->add folder
Add the c1 code to p1 source

If you are trying to add “c1” again to project “p2” it give you an error “Package folder already in use by project p1”. To overcome this.

Add the parent folder of “c1” (i.e) c0 to project “p2” by properties->sources->Source PackageFolders->add folder

• Open the file “project.properties” of p2 at “p2\nbproject\ project.properties”
• Search for the string “src.c0.dir=${file.reference.c-c0}”
• Replace the value of file.reference.c-c0 with actual code folder “c1”
• Example file.reference.c-c0=\home\c\c0\c1
• Save the file project.properties

Hope this help . I spent 3 hours in figuring this out, But its worth to document by spending 30 min more 


Thanks & Regards
Balaji Chopparapu

Monday, January 4, 2010

Unable to get IP Address for VMware

The root cause for it might be there is a VMWare DHCP Server running on the host. Please stop the VMware DHCP server on the host and renew the IP address for VMware
Steps
• Go to hostmachine (my machine is win2k8)
• Run services.msc
• Select the VMware DHCP Server
• Stop DHCP Server
• Disbale DHCP server
• Disconnect the VMware Network adapted from the GUEST
• Connect the VMware Network adapter
• You should get the correct IP for the host

Sunday, December 20, 2009

Profiling Java App using Visual VM

Profiling Java App using Visual VM
Balaji Chopparapu

















Learning is the only kind of treasure that multiplies when it is given around to others. When not done so, it starts shrinking and dies out.
-Anonymous
 
1. Memory leaks in java
2. Circular reference.
3. Creating a memory leak
4. True Leak
5. Profiler

 
1. Memory leaks in java
Most people think Java cannot leak memory, but actually that’s not true. Java, unlike languages such as C or Javascript, can have two kinds of memory leaks:

* True leaks – unreferenced, unrecoverable segments of memory
* Soft leaks – memory that could be garbage collected, but is “accidentally” referenced

The first kind of memory leak, the true leak, is common to C. It’s trivially easy to write a C program which leaks memory like a sieve by simple putting a call to malloc(…) inside a tight loop. This creates unbounded amounts of heap memory and eventually runs out of space. Additionally, the memory is lost if you don’t save a pointer to it. However, the same program in Java will not run out of memory


The above program should lead to memory problem. (i.e) the program should terminated with Out of memory but it will not happen because of automatic garbage collection in java
Let’s Analyze the program


In the infinite while loop. The objects of class MemoryLeakDemo are created using new operator and not destroyed. Once the scope of the block is lost the memory allocated to object is garbage collected by JVM. This makes the program not to run out of memory and there is not memory leak in it.
Program out put


Memory graph by running the program for 5 min.


In the above memory graph the amount of heap size allotted is 5MB and the memory consumption by the program varied between 1MB to 2MB.
2. Circular Reference:
The object has the self reference to it. In the example the MemoryLeakDemo has self reference to it.
Even though the objects has circular reference the garbage collector is intelligent enough to find out unused objects and remove them from memory



3. Creating a Memory Leak:
The easiest way to create a memory leak is to have objects with long life cycle has reference to objects with shorter life cycle.
Let’s enhance the program to create a memory leak

In the above code the Arrylist object “longLivedObject” has reference to “shortLivedObject” that's reason though the “shortLivedObject”s lost the scope they are not garbage collected.

Let’s analyze their memory consumption by running the program for 5 min

In the above figure you can observe there is considerable increase in heap size from 1MB to 29MB. This is because the shortLivedObjects are not garbage collected. This happened due to longLivedObjects has reference to shortLivedObjects.
If the program is allowed to run for while it may lead to out of the memory error once the max heap sixe 68MB is consumed.


4. True Leak
Though, there is a way to create true memory leaks in java, and that is with a poor implementation of the finalize method.

Throwing any kind of Exception or Error from finalize() also prevents the garbage collector from reclaiming the memory
5. Profiler
Profile the java application using Visual VM
Visual VM is a profiling tool that comes with JDK1.6. This allows us to identify the memory consumed, stack call trace ..etc of a java application.
In our example lets us take a small Calculator application and verify the time taken by each method.

The above Calculator application performs few basic mathematical operations like add, sub, div and mul. Let’s analyze the time take by each operation using Visual VM
Start Visual VM:
C:\Program Files\Java\jdk1.6.0_14\bin\jvisualvm.exe

Under the Local node you can see currently two applications are running in this Virtual Machine. They are Visual VM and Netbeans 6.7
Double click on the leaf node (application) to see the details of the java process (Netbeans 6.7).

The above screen shows the overview of the Net Beans 6.7 process.
Let run the Calculator.java in debug mode by setting the break points. This helps us to monitor the application in VisaulVM. If we didn't set the break point s and run the application, we will not get the sufficient time to monitor the app in Visual VM.

Run the application in debug mode and observe an instance in Visual VM.

Click on the Calculator process and Select the profile tab. Here you can see set of packages that are profiled. Select settings and provide the package you want to profile, for example org.bytesforall.demo.** . This profiles all the subclass and packages in under the package org.bytesforall.demo
After providing the necessary package clicks on CPU to profile the class Calculator.java, than release the break point and observe the call trace.

The above stack trace shows the methods that are called and their execution time.

Wednesday, July 29, 2009

Changing the default JDK used by Netbeans

Netbeans uses the jdk version in $Netbeans_installed_path\etc\netbeans.conf
Change the value
netbeans_jdkhome="C:\Program Files\Java\jdk1.6.0_14"
This property can be overridden by environment variable netbeans_jdkhome

Followers