Resolving Oracle TNS Errors

  1. In the listener.ora file make sure that service name is included


    (SID_DESC =
    (SID_NAME = dbname)
    (ORACLE_HOME = ‘appropriate path’)


  2. For the errors
    ORA-12519, TNS:no appropriate service handler found
    The Connection descriptor used by the client was:
    Connection[Listener refused the connection with the following error:
    ORA-12518, TNS:listener could not hand off client connection
    the reason for this is number of processes used by Oracle exceeded the maximum value specified in init ORA parameter
  3. The value of parameter ‘processes‘ can be seen by logging into
    sqlplus database as ‘sqlplus sys/(dbname) as sysdba’
    and then using command ‘show parameter processes’
  4. The value can be edited by
    editing two files init(dbname).ORA and SPFILE(DBNAME).ORA
  5. Then start/stop Windows services for listener and database.
    The modified value can be verified by using step 3

Installing Leiningan in Windows for running clojure

This blog is more note to myself for avoiding the common pitfalls for installing leiningan for running clojure
How to install Leiningen for clojure

1)Download the wget exe file from url
and also save the Windows stored location to the PATH environment variable

2)Follow the similiar procedure for getting Lein batch file

3)Run the command
'lein self-install' from the command line

This stack overflow question link is also very helpful in this regard

GIT(Source Control) Thoughts gathered

This is brain dump of thoughts I gathered and writing this to be easily referred in future

when using git svn clone command specify the full path as svn/trunk/yourpoject or svn/branches/yourproject

git svn has the command git svn create-ignore which creates the gitignore file based on svn

use git svn rebase command to update your git repository with chanes in svn

git push -u origin(remote repository ref) branchname
to push your newly created branch to server

git push origin branchname:branchname to commit changes you have made to the branch to the server branch

git merge master branchname: to merge the changes from branch to master

git fetch githubremotename +localbranchname:remotebranchname
execute this command from MASTER branch

How to sync your changes of your forked repository
$ git checkout -b upstream/master
$ git remote add upstream git://
$ git pull upstream
$ git checkout master
$ git merge upstream/master

git push origin master

TDD thoughts gathered

In this post I would like to share some of the tips I gained by reading initial part of Junit Recipes book

and the blog

  • Testing follows three important acts Arrange,Act,Assert (create an object,invoke method on object ,Assert the value returned is as expected)
  • The ATOM or smallest possible test is testing the return value of Method with the expected
  • Testing should be focused on testing the Behavior of the object rather than testing Individual methods(Testing that the behavior change of the object being tested is as expected by applying the methods)
  • Testing should be focused on What the Method does rather than the Implementation.In this way,tests are not coupled to implementation and hence easy to Refactor both the Code and Tests
  • Value Objects Testing:    Value Objects represent objects passed in the application.For example we can consider List  as Value Object in the Java.    In the case of Value Object it becomes important that both the Object equals method and hashcode  ,as the correct implementation of equals   method guarantees the Value objects (representing the same value is interpreted as same )..:)
  • GSBase Equals Tester can be used to test whether the equals and hashcodemethod   for an Object has implemented both these methods correct whether the equal method satisfies all properties reflexive,symmetric,transitive)
  • For Testing methods that has void return values observe the side effect as the result of executing the method.If the method does not cause any change to the Object neither returns a value,then the Method does not need to be existed.
  • If  it is not possible to observe the side effect then try exposing side effects through method.In the long run,making these trade-offs leads to maintainable,testable code
  • For Testing the constructor,tests can be written as to whether parameters passed to the constructor are injected appropriately to the object
  • If the Object being constructed does not expose any readable properties,then assert the Object being constructed  is in Valid state(isValid()).The same technique can be used to test the JavaBean too.
  • Getter Methods do not warranty test generally unless the getMethods performs some processing on the incoming value.
  • Setter methods can be tested by asserting the values of corresponding getter methods
  • Singleton(or) Global state is evil.since it becomes very difficult to assert the state of the object being tested is expected to be in.

life at 28

in my case, I think when you grow old you want to talk more and to be listened 🙂
 i also wanted to learn more than ever before.dont know why
I often wonder how can you succeed on the software field.
Every developer has same tool which he build on top of it…what is the X factor?
Is it your workplace or colleagues or your self motivation to learn something new
or to enhance your problem solving skills?

you also tend to take a review of what you have done so far in  your life..
Well I think writing that review would be really cynical..

I  have found a new Job and I am really happy about the project
I have been put into..
My colleagues, and some of the agile tools like Cruise control are used in the project which is ambitious of
using the latest technology

found some interesting software suggested by my colleagues

Well ..I have found out a long list of To be Read books
Apprenticeship Patterns
Programming pearls
Junit recipes
pojos in action
The definitive guide to spring  webflow